From 497b6489a1593030001ef88c2f45cc647339ff00 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 2 Jul 2020 10:16:57 +0200 Subject: [PATCH 001/116] added SOL009 folder --- SOL009/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 SOL009/README.md diff --git a/SOL009/README.md b/SOL009/README.md new file mode 100644 index 000000000..8554b3f0e --- /dev/null +++ b/SOL009/README.md @@ -0,0 +1,13 @@ +# NFV API Tests + +This folder includes the NFV API conformance test descriptions for NFV SOL009 APIs. + +The reference spec version is v3.3.1: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf + +## License + +Any software in this repository is released under the ETSI Software License. +Licensing information is available in the attached LICENSE file. + + +Copyright (c) ETSI 2018 -- GitLab From fb10c6bf1569fb6adda3c221e06a82ff53497425 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 7 Jul 2020 10:40:27 +0500 Subject: [PATCH 002/116] variables added --- .../environment/variables.txt | 17 ++++++++++ .../schemas/ProblemDetails.schema.json | 34 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 SOL009/NFVMANOFaultManagement-API/environment/variables.txt create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/ProblemDetails.schema.json diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt new file mode 100644 index 000000000..71a0f5511 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -0,0 +1,17 @@ +*** Variables *** +${NFVMANO_HOST} localhost # Hostname of the NFV-MANO +${NFVMANO_PORT} 8080 # Listening port of the NFV-MANO +${NFVMANO_SCHEMA} https +${AUTHORIZATION} Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ== +${CONTENT_TYPE} application/json +${ACCEPT} application/json +${ACCEPT_JSON} application/json +${AUTH_USAGE} 1 + +${WRONG_AUTHORIZATION} Bearer XXXXXWRONGXXXXX +${apiRoot} / +${apiName} nfvmanofm +${apiVersion} v1 + + + diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/ProblemDetails.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/ProblemDetails.schema.json new file mode 100644 index 000000000..62f176127 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/ProblemDetails.schema.json @@ -0,0 +1,34 @@ +{ + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "properties": { + "type": { + "type": "string", + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "format": "URI" + }, + "title": { + "type": "string", + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n" + }, + "status": { + "type": "integer", + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n" + }, + "detail": { + "type": "string", + "description": "A human-readable explanation specific to this occurrence of the problem.\n" + }, + "instance": { + "type": "string", + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "format": "URI" + } + }, + "required": [ + "status", + "detail" + ] +} \ No newline at end of file -- GitLab From 6eed89f9e896e64b3dc3366fcbbcafb1666bbb6f Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 8 Jul 2020 07:19:24 +0500 Subject: [PATCH 003/116] Added Test Case for Alarms.robot --- .../NFVMANOFaultManagement-API/Alarms.robot | 125 ++++++++++++++++++ .../FaultManagement-APIKeyword.robot | 95 +++++++++++++ .../environment/variables.txt | 8 +- 3 files changed, 227 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVMANOFaultManagement-API/Alarms.robot create mode 100644 SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot new file mode 100644 index 000000000..85e1dc22a --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -0,0 +1,125 @@ +*** Settings *** +Resource environment/variables.txt +Resource FaultManagement-APIKeyword.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} +Library JSONLibrary +Library JSONSchemaLibrary schemas/ +Library OperatingSystem + + +*** Test Cases *** +POST Alarms - Method not implemented + [Documentation] Test ID: 8.3.3.1.1 + ... Test title: POST Alarms - Method not implemented + ... Test objective: The objective is to test that Post method is not allowed to create Fault management alarms on NFV-MANO + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send POST request for fault management Alarms + Check HTTP Response Status Code Is 405 + +Get information about multiple alarms + [Documentation] Test ID: 8.3.3.1.2 + ... Test title: Get information about multiple alarms + ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema and content validation of the returned alarms data structure + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarms + +Get information about multiple alarms with filter + [Documentation] Test ID: 8.3.3.1.3 + ... Test title: Get information about multiple alarms with filter + ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema and content validation of the returned alarms data structure, and verify that the retrieved information matches the issued attribute-based filters + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms With Filters + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarms + +Get information about multiple alarms Bad Request Invalid attribute-based filtering parameters + [Documentation] Test ID: 8.3.3.1.4 + ... Test title: Get information about multiple alarms Bad Request Invalid attribute-based filtering parameters + ... Test objective: The objective is to try to retrieve information about the alarm list with invalid filters and perform a JSON schema and content validation of the returned problem details data structure + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms With Invalid Filters + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + + +Get information about multiple alarms as a Paged Response + [Documentation] Test ID: 8.3.3.1.5 + ... Test title: Get information about multiple alarms as a Paged Response + ... Test objective: The objective is to retrieve information about the alarm list as a Paged Response + ... Pre-conditions: none + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms + Check HTTP Response Status Code Is 200 + Check LINK in Header + +Get information about multiple alarms - Bad Request Response too Big + [Documentation] Test ID: 8.3.3.1.6 + ... Test title: Get information about multiple alarms - Bad Request Response too Big + ... Test objective: The objective is to try to retrieve information about the alarm list because response is too big and perform a JSON schema and content validation of the returned problem details data structure + ... Pre-conditions: none + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +PUT Alarms - Method not implemented + [Documentation] Test ID: 8.3.3.1.7 + ... Test title: PUT Alarms - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to for Fault management alarms on NFV-MANO + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT Fault management Alarms + Check HTTP Response Status Code Is 405 + +PATCH Alarms - Method not implemented + [Documentation] Test ID: 8.3.3.1.8 + ... Test title: PATCH Alarms - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to for Fault management alarms on NFV-MANO + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH Fault management Alarms + Check HTTP Response Status Code Is 405 + +DELETE Alarms - Method not implemented + [Documentation] Test ID: 8.3.3.1.9 + ... Test title: POST Alarms - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed for Fault management alarms on NFV-MANO + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE Fault management Alarms + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO fault management alarms Exists + \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot new file mode 100644 index 000000000..f2e0d5bfa --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -0,0 +1,95 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} +Library JSONLibrary +Library JSONSchemaLibrary schemas/ +Library OperatingSystem + + +Library Process + +*** Variables *** + + +*** Keywords *** + +Send POST request for fault management Alarms + 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}/${apiMajorVersion}/alarms + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Log Validate Status code + Should Be Equal ${response[0]['status']} ${expected_status} + Log Status code validated + +GET Fault Management Alarms + Log Query NFVO The GET method queries information about multiple alarms. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + ${schema} = Catenate ${input} .schema.json + Validate Json ${schema} ${response[0]['body']} + Log Json Schema Validation OK + +GET Fault Management Alarms With Filters + Log Query NFVO The GET method queries information about multiple alarms with filters. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?${alarm_filter}=${managedObjectId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Fault Management Alarms With Invalid Filters + Log Query NFVO The GET method queries information about multiple alarms with filters. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?${invalid_alarm_filter}=${managedObjectId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Check LINK in Header + ${linkURL}= Get Value From Json ${response['headers']} $..Link + Should Not Be Empty ${linkURL} + +PATCH Fault management Alarms + 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}/${apiMajorVersion}/alarms + ${outputResponse} = Output response + Set Global Variable @{response} ${outputResponse} + +PUT Fault management Alarms + 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}/${apiMajorVersion}/alarms + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +DELETE Fault management Alarms + 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}/${apiMajorVersion}/alarms + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Check Postcondition NFV-MANO fault management alarms Exists + Log Checking that alarms exists + GET Fault Management Alarms + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarms \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index 71a0f5511..83f640338 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -11,7 +11,13 @@ ${AUTH_USAGE} 1 ${WRONG_AUTHORIZATION} Bearer XXXXXWRONGXXXXX ${apiRoot} / ${apiName} nfvmanofm -${apiVersion} v1 +${apiMajorVersion} v1 + +${response} {} + +${alarm_filter} managedObjectId +${managedObjectId} 007c111c-38a1-42c0-a666-7475ecb1567c +${invalid_alarm_filter} badFilter -- GitLab From 7afb3303f2dd9f9f12cedfc910c663fdb399afa0 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 8 Jul 2020 12:10:37 +0500 Subject: [PATCH 004/116] Added Test Cases for IndiviualAlarm.robot --- .../FaultManagement-APIKeyword.robot | 78 ++++++++++++- .../IndividualAlarm.robot | 104 ++++++++++++++++++ .../environment/variables.txt | 8 ++ 3 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index f2e0d5bfa..9633d085f 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -9,7 +9,7 @@ Library OperatingSystem Library Process *** Variables *** - +${original_etag} 1234 *** Keywords *** @@ -92,4 +92,78 @@ Check Postcondition NFV-MANO fault management alarms Exists Log Checking that alarms exists GET Fault Management Alarms Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is Alarms \ No newline at end of file + Check HTTP Response Body Json Schema Is Alarms + +Send POST request for fault management Individual Alarm + 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}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/alarms/${alarmId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Fault Management Individual Alarm + Log Query VNF The GET method queries information about an alarm. + 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}/${apiMajorVersion}/alarms/${alarmId} + ${etag} Output response headers ETag + Set Suite Variable &{original_etag} ${etag} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +PUT Fault Management Individual Alarm + 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}/${apiMajorVersion}/alarms/${alarmId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Check Postcondition fault management individual alarm Exists + Log Checking that individual alarm exists + GET Fault Management Individual Alarm + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is alarm + +PATCH Fault Management Individual Alarm + log Trying to perform a PATCH. This method modifies an individual alarm resource + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/alarmModifications.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/alarms/${alarmId} ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +PATCH Fault Management Individual Alarm - precondition failed + log Trying to perform a PATCH. This method modifies an individual alarm resource + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Set Headers {"If-Match": "${original_etag[0]}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/alarmModifications.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/alarms/${alarmId} ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +PATCH Fault Management Individual Alarm Conflict + log Trying to perform a PATCH. This method modifies an individual alarm resource + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Set Headers {"If-Match": "${Etag}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/alarmModifications.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/alarms/${alarmId} ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +DELETE Fault Management Individual Alarm + 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}/${apiMajorVersion}/alarms/${alarmId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot new file mode 100644 index 000000000..bd96fbc20 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -0,0 +1,104 @@ +*** Settings *** +Resource environment/variables.txt +Resource FaultManagement-APIKeyword.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ +Library DependencyLibrary + + + +*** Test Cases *** +POST Alarm - Method not implemented + [Documentation] Test ID: 8.3.3.2.1 + ... Test title: POST Alarm - Method not implemented + ... Test objective: The objective is to test that Post method is not allowed to create Fault management individual alarm on NFV-MANO + ... Pre-conditions: none + ... Reference: clause 7.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send POST request for fault management Individual Alarm + Check HTTP Response Status Code Is 405 + +Get information about an fault management individual alarm + [Documentation] Test ID: 8.3.3.2.2 + ... Test title: Get information about an fault management individual alarm + ... Test objective: The objective is to retrieve information about an individual alarm and perform a JSON schema and content validation of the returned alarm data structure + ... Pre-conditions: The related alarm exists + ... Reference: clause 7.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Individual Alarm + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is alarm + +PUT Alarm - Method not implemented + [Documentation] Test ID: 8.3.3.2.3 + ... Test title: PUT Alarm - Method not implemented + ... Test objective: he objective is to test that PUT method is not allowed to for Fault management individual alarm on NFV-MANO + ... Pre-conditions: The related alarm exists + ... Reference: clause 7.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT Fault Management Individual Alarm + Check HTTP Response Status Code Is 405 + +PATCH Fault Management Individual Alarm + [Documentation] Test ID: 8.3.3.2.4 + ... Test title: PATCH Fault Management Individual Alarm + ... Test objective: The objective is to Modify an individual alarm resource and perform a JSON schema and content validation of the returned alarm data structure + ... Pre-conditions: The related alarm exists + ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Check Postcondition fault management individual alarm Exists + PATCH Fault Management Individual Alarm + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is alarmModification + +Modify an individual alarm resource - Precondition failed + [Documentation] Test ID: 8.3.3.2.5 + ... Test title: Modify an individual alarm resource - Precondition failed + ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the alarm is already in the state that is requested to be set + ... Pre-conditions: The related alarm exists + ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Check Postcondition fault management individual alarm Exists + PATCH Fault Management Individual Alarm - precondition failed + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +Modify an individual alarm resource - Conflict + [Documentation] Test ID: 8.3.3.2.6 + ... Test title: Modify an individual alarm resource - Conflict + ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the resource was modified by another entity + ... Pre-conditions: The related alarm exists + ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Depends On Test PATCH Fault Management Individual Alarm + Check Postcondition fault management individual alarm Exists + PATCH Fault Management Individual Alarm Conflict + Check HTTP Response Status Code Is 412 + Check HTTP Response Body Json Schema Is ProblemDetails + +DELETE Alarm - Method not implemented + [Documentation] Test ID: 8.3.3.2.7 + ... Test title: DELETE Alarm - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to for Fault management individual alarm on NFV-MANO + ... Pre-conditions: nona + ... Reference: clause 7.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The individual alarm still exists + DELETE Fault Management Individual Alarm + Check HTTP Response Status Code Is 405 + Check Postcondition fault management individual alarm Exists \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index 83f640338..f06277a9a 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -14,10 +14,18 @@ ${apiName} nfvmanofm ${apiMajorVersion} v1 ${response} {} +${CONTENT_TYPE_PATCH} application/merge-patch+json ${alarm_filter} managedObjectId ${managedObjectId} 007c111c-38a1-42c0-a666-7475ecb1567c ${invalid_alarm_filter} badFilter +${alarmId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d + +${Etag}= an etag +${Etag_modified}= a modified etag + + + -- GitLab From 5fc21a37e567da1f6ee3836c761df7fe918d9bff Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 9 Jul 2020 07:08:45 +0500 Subject: [PATCH 005/116] Added Schemas --- .../IndividualAlarm.robot | 2 +- .../schemas/AlarmModification.schema.json | 16 ++ .../schemas/Alarms.schema.json | 171 ++++++++++++++++++ .../schemas/alarm.schema.json | 168 +++++++++++++++++ 4 files changed, 356 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/AlarmModification.schema.json create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/Alarms.schema.json create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/alarm.schema.json diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot index bd96fbc20..ab533b017 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -59,7 +59,7 @@ PATCH Fault Management Individual Alarm Check Postcondition fault management individual alarm Exists PATCH Fault Management Individual Alarm Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is alarmModification + Check HTTP Response Body Json Schema Is AlarmModification Modify an individual alarm resource - Precondition failed [Documentation] Test ID: 8.3.3.2.5 diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/AlarmModification.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/AlarmModification.schema.json new file mode 100644 index 000000000..8075efd71 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/AlarmModification.schema.json @@ -0,0 +1,16 @@ +{ + "description": "This type represents attribute modifications for an \"Individual alarm\" resource, i.e. modifications to a resource representation based on the \"Alarm\" data type. The attributes of \"Alarm\" that can be modified are included in the \"AlarmModifications\" data type.\n", + "type": "object", + "required": [ + "ackState" + ], + "properties": { + "ackState": { + "description": "New value of the \"ackState\" attribute in \"Alarm\". Permitted values: * ACKNOWLEDGED\n", + "type": "string", + "enum": [ + "ACKNOWLEDGED" + ] + } + } + } \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/Alarms.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/Alarms.schema.json new file mode 100644 index 000000000..612a328d2 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/Alarms.schema.json @@ -0,0 +1,171 @@ +{ + "type": "array", + "items": { + "description": "The alarm data type encapsulates information about an alarm.\n", + "type": "object", + "required": [ + "id", + "managedObjectId", + "alarmRaisedTime", + "ackState", + "perceivedSeverity", + "eventTime", + "eventType", + "probableCause", + "isRootCause", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "managedObjectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "associatedFaultyInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "alarmRaisedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmClearedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "ackState": { + "description": "Acknowledgement state of the alarm. Permitted values: * UNACKNOWLEDGED * ACKNOWLEDGED.\n", + "type": "string", + "enum": [ + "UNACKNOWLEDGED", + "ACKNOWLEDGED" + ] + }, + "perceivedSeverity": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + }, + "eventTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "eventType": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + }, + "faultType": { + "description": "Additional information to clarify the type of the fault.\n", + "type": "string" + }, + "probableCause": { + "description": "Information about the probable cause of the fault.\n", + "type": "string" + }, + "isRootCause": { + "description": "Attribute indicating if this fault is the root for other correlated alarms. If true, then the alarms listed in the attribute CorrelatedAlarmId are caused by this fault.\n", + "type": "boolean" + }, + "correlatedAlarmIds": { + "description": "List of identifiers of other alarms correlated to this fault.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "faultDetails": { + "description": "Provides additional information about the fault.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objectInstance": { + "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 diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/alarm.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/alarm.schema.json new file mode 100644 index 000000000..51a3853d1 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/alarm.schema.json @@ -0,0 +1,168 @@ +{ + "description": "The alarm data type encapsulates information about an alarm.\n", + "type": "object", + "required": [ + "id", + "managedObjectId", + "alarmRaisedTime", + "ackState", + "perceivedSeverity", + "eventTime", + "eventType", + "probableCause", + "isRootCause", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "managedObjectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "associatedFaultyInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "alarmRaisedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmClearedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "ackState": { + "description": "Acknowledgement state of the alarm. Permitted values: * UNACKNOWLEDGED * ACKNOWLEDGED.\n", + "type": "string", + "enum": [ + "UNACKNOWLEDGED", + "ACKNOWLEDGED" + ] + }, + "perceivedSeverity": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + }, + "eventTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "eventType": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + }, + "faultType": { + "description": "Additional information to clarify the type of the fault.\n", + "type": "string" + }, + "probableCause": { + "description": "Information about the probable cause of the fault.\n", + "type": "string" + }, + "isRootCause": { + "description": "Attribute indicating if this fault is the root for other correlated alarms. If true, then the alarms listed in the attribute CorrelatedAlarmId are caused by this fault.\n", + "type": "boolean" + }, + "correlatedAlarmIds": { + "description": "List of identifiers of other alarms correlated to this fault.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "faultDetails": { + "description": "Provides additional information about the fault.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objectInstance": { + "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 1934db57566703bb2f769f451aadf576ec69af13 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 9 Jul 2020 11:32:22 +0500 Subject: [PATCH 006/116] Fault Management API added --- .../SOL009-NFVMANOFaultManagement-API.json | 8388 +++++++++++ .../SOL009-NFVMANOFaultManagement-API.yaml | 12122 ++++++++++++++++ 2 files changed, 20510 insertions(+) create mode 100644 SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.json create mode 100644 SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.yaml diff --git a/SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.json b/SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.json new file mode 100644 index 000000000..cc8839c02 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.json @@ -0,0 +1,8388 @@ +{ + "openapi": "3.0.2", + "info": { + "version": "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1", + "title": "SOL009 - NFV-MANO Fault Management interface", + "description": "SOL009 - NFV-MANO Fault Management interface\nIMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence.\nPlease report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=\n", + "license": { + "name": "ETSI Forge copyright notice", + "url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt" + } + }, + "externalDocs": { + "description": "ETSI GS NFV-SOL 009 V3.3.1", + "url": "https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf" + }, + "servers": [ + { + "url": "http://127.0.0.1/nfvmanofm/v1" + }, + { + "url": "https://127.0.0.1/nfvmanofm/v1" + } + ], + "paths": { + "/api_versions": { + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "get": { + "summary": "Retrieve API version information", + "description": "The GET method reads API version information. This method shall follow the provisions specified in table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not supported.\n", + "responses": { + "200": { + "description": "200 OK\nAPI version information was read successfully. The response body shall contain 4.4 API version information, as defined in clause 4.4.1.13.\n", + "content": { + "application/json": { + "schema": { + "description": "This type represents API version information.\n", + "type": "object", + "required": [ + "uriPrefix", + "apiVersions" + ], + "properties": { + "uriPrefix": { + "description": "Specifies the URI prefix for the API, in the following form {apiRoot}/{apiName}/{apiMajorVersion}/.\n", + "type": "string" + }, + "apiVersions": { + "description": "Version(s) supported for the API signaled by the uriPrefix attribute.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "version" + ], + "properties": { + "version": { + "description": "Identifies a supported version. The value of the version attribute shall be a version identifier as specified in clause 9.1 (SOL013).\n", + "type": "string" + }, + "isDeprecated": { + "description": "If such information is available, this attribute indicates whether use of the version signaled by the version attribute is deprecated (true) or not (false).\nA deprecated version is still supported by the API producer but is recommended not to be used any longer. When a version is no longer supported, it does not appear in the response body.\n", + "type": "boolean" + }, + "retirementDate": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + } + } + } + } + } + } + } + }, + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "The used API version.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "413": { + "description": "413 PAYLOAD TOO LARGE\nIf the payload body of a request is larger than the amount of data the API producer is willing or able to process, it shall respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for closing the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "414": { + "description": "414 URI TOO LONG\nIf the request URI of a request is longer than the API producer is willing or able to process, it shall respond with this response code. This condition can e.g. be caused by passing long queries in the request URI of a GET request. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "416": { + "description": "416 Range Not Satisfiable\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "429": { + "description": "429 TOO MANY REQUESTS\nIf the API consumer has sent too many requests in a defined period of time and the API producer is able to detect that condition (\"rate limiting\"), the API producer shall respond with this response code, following the provisions in IETF RFC 6585 [17] for the use of the \"Retry-After\" HTTP header. The \"ProblemDetails\" structure shall be provided and shall include in the \"detail\" attribute more information about the source of the problem.\nThe period of time and allowed number of requests are configured within the API producer by means outside the scope of the present document.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + } + }, + "/alarms": { + "get": { + "description": "Get Alarm List. The client can use this method to retrieve information about the alarm list. This method shall follow the provisions specified in the tables 7.5.3.3.2-1 and 7.5.3.3.2-2 for URI query parameters, request and response data structures, and response codes.\n", + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Accept", + "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "filter", + "description": "Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support receiving this parameter as part of the URI query string. The API consumer may supply this parameter. All attribute names that appear in the FmSubscription and in data types referenced from it shall be supported by the NFV-MANO functional entity in the filter expression.\n", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nextpage_opaque_marker", + "description": "Marker to obtain the next page of a paged response. Shall be supported by the NFV-MANO functional entity if the entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource.\n", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "200 OK\nShall be returned when information about zero or more alarms has been queried successfully. The response body shall contain in an array the representations of zero or more alarms as defined in clause 7.6.2.4. If the \"filter\" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Link": { + "description": "Reference to other resources. Used for paging in the present document.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "description": "The alarm data type encapsulates information about an alarm.\n", + "type": "object", + "required": [ + "id", + "managedObjectId", + "alarmRaisedTime", + "ackState", + "perceivedSeverity", + "eventTime", + "eventType", + "probableCause", + "isRootCause", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "managedObjectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "associatedFaultyInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "alarmRaisedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmClearedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "ackState": { + "description": "Acknowledgement state of the alarm. Permitted values: * UNACKNOWLEDGED * ACKNOWLEDGED.\n", + "type": "string", + "enum": [ + "UNACKNOWLEDGED", + "ACKNOWLEDGED" + ] + }, + "perceivedSeverity": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + }, + "eventTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "eventType": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + }, + "faultType": { + "description": "Additional information to clarify the type of the fault.\n", + "type": "string" + }, + "probableCause": { + "description": "Information about the probable cause of the fault.\n", + "type": "string" + }, + "isRootCause": { + "description": "Attribute indicating if this fault is the root for other correlated alarms. If true, then the alarms listed in the attribute CorrelatedAlarmId are caused by this fault.\n", + "type": "boolean" + }, + "correlatedAlarmIds": { + "description": "List of identifiers of other alarms correlated to this fault.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "faultDetails": { + "description": "Provides additional information about the fault.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objectInstance": { + "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" + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + } + }, + "/alarms/{alarmId}": { + "parameters": [ + { + "name": "alarmId", + "description": "Identifier of the alarm. This identifier can be retrieved from the \"id\" attribute of the \"alarm\" attribute in the AlarmNotification or AlarmClearedNotification. It can also be retrieved from the \"id\" attribute of the applicable array element in the payload body of the response to a GET request to the \"Alarms\" resource.\n", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "get": { + "description": "The client can use this method to read an individual alarm. This method shall follow the provisions specified in the tables 7.5.4.3.2-1 and 7.5.4.3.2-2 for URI query parameters, request and response data structures, and response codes.\n", + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Accept", + "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "200 OK\nShall be returned when information about an individual alarm has been read successfully. The response body shall contain a representation of the individual alarm\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The alarm data type encapsulates information about an alarm.\n", + "type": "object", + "required": [ + "id", + "managedObjectId", + "alarmRaisedTime", + "ackState", + "perceivedSeverity", + "eventTime", + "eventType", + "probableCause", + "isRootCause", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "managedObjectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "associatedFaultyInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "alarmRaisedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmClearedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "ackState": { + "description": "Acknowledgement state of the alarm. Permitted values: * UNACKNOWLEDGED * ACKNOWLEDGED.\n", + "type": "string", + "enum": [ + "UNACKNOWLEDGED", + "ACKNOWLEDGED" + ] + }, + "perceivedSeverity": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + }, + "eventTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "eventType": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + }, + "faultType": { + "description": "Additional information to clarify the type of the fault.\n", + "type": "string" + }, + "probableCause": { + "description": "Information about the probable cause of the fault.\n", + "type": "string" + }, + "isRootCause": { + "description": "Attribute indicating if this fault is the root for other correlated alarms. If true, then the alarms listed in the attribute CorrelatedAlarmId are caused by this fault.\n", + "type": "boolean" + }, + "correlatedAlarmIds": { + "description": "List of identifiers of other alarms correlated to this fault.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "faultDetails": { + "description": "Provides additional information about the fault.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objectInstance": { + "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" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + }, + "patch": { + "description": "This method modifies an \"Individual alarm\" resource. This method shall follow the provisions specified in the tables 7.5.4.3.4-1 and 7.5.4.3.4-2 for URI query parameters, request and response data structures, and response codes.\n", + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Accept", + "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Content-Type", + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The parameter for the alarm modification, as defined in clause 7.6.2.8. The Content-Type header shall be set to \"application/merge-patch+json\" according to IETF RFC 7396.\n", + "content": { + "application/json": { + "schema": { + "description": "This type represents attribute modifications for an \"Individual alarm\" resource, i.e. modifications to a resource representation based on the \"Alarm\" data type. The attributes of \"Alarm\" that can be modified are included in the \"AlarmModifications\" data type.\n", + "type": "object", + "required": [ + "ackState" + ], + "properties": { + "ackState": { + "description": "New value of the \"ackState\" attribute in \"Alarm\". Permitted values: * ACKNOWLEDGED\n", + "type": "string", + "enum": [ + "ACKNOWLEDGED" + ] + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "200 OK\nShall be returned when the request has been accepted and completed. ì The response body shall contain attribute modifications for an \"Individual alarm\" resource (see clause 7.6.2.4).\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "This type represents attribute modifications for an \"Individual alarm\" resource, i.e. modifications to a resource representation based on the \"Alarm\" data type. The attributes of \"Alarm\" that can be modified are included in the \"AlarmModifications\" data type.\n", + "type": "object", + "required": [ + "ackState" + ], + "properties": { + "ackState": { + "description": "New value of the \"ackState\" attribute in \"Alarm\". Permitted values: * ACKNOWLEDGED\n", + "type": "string", + "enum": [ + "ACKNOWLEDGED" + ] + } + } + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "409": { + "description": "409 CONFLICT\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "412": { + "description": "412 PRECONDITION FAILED\nError: A precondition given in an HTTP request header is not fulfilled. Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. The response body should contain a ProblemDetails structure, in which the \"detail\" attribute should convey more information about the error.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + } + }, + "/subscriptions": { + "post": { + "description": "Subscribe. The POST method creates a new subscription. This method shall follow the provisions specified in the tables 7.5.5.3.1-1 and 7.5.5.3.1-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, a new \"Individual subscription\" resource as defined in clause 7.5.6 shall have been created. This method shall not trigger any notification. Creation of two \"Individual subscription\" resources with the same callbackURI and the same filter can result in performance degradation and will provide duplicates of notifications to the API consumer, and might make sense only in very rare use cases. Consequently, the NFV-MANO functional entity may either allow creating a new \"Individual subscription\" resource if another \"Individual subscription\" resource with the same filter and callbackUri already exists (in which case it shall return the \"201 Created\" response code), or may decide to not create a duplicate \"Individual subscription\" resource (in which case it shall return a \"303 See Other\" response code referencing the existing \"Individual subscription\" resource with the same filter and callbackUri).\n", + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Accept", + "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Content-Type", + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Details of the subscription to be created, as defined in clause 7.6.2.2.\n", + "content": { + "application/json": { + "schema": { + "description": "This type represents a subscription request related to notifications about NFV-MANO faults.\n", + "type": "object", + "required": [ + "callbackUri" + ], + "properties": { + "filter": { + "description": "This type represents a subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "authentication": { + "type": "object", + "required": [ + "authType" + ], + "properties": { + "authType": { + "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use\n HTTP Basic authentication with the client credentials.\n* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the\n notification endpoint, use an OAuth 2.0 Bearer token, obtained\n using the client credentials grant type.\n* TLS_CERT: Every HTTP request to the notification endpoint is sent\n over a mutually authenticated TLS session, i.e. not only the\n server is authenticated, but also the client is authenticated\n during the TLS tunnel setup.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS", + "TLS_CERT" + ] + } + }, + "paramsBasic": { + "description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "userName": { + "description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + }, + "password": { + "description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + } + } + }, + "paramsOauth2ClientCredentials": { + "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "clientId": { + "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n", + "type": "string" + }, + "clientPassword": { + "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n", + "type": "string" + }, + "tokenEndpoint": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "201 CREATED\nShall be returned when the subscription has been created successfully. The response body shall contain a representation of the created \"Individual subscription\" resource. The HTTP response shall include a \"Location:\"\" HTTP header that points to the created \"Individual subscription\" resource.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Location": { + "description": "The resource URI of the created subscription resource.\n", + "schema": { + "type": "string", + "format": "url", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } + } + } + }, + "303": { + "description": "303 See Other\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + }, + "get": { + "description": "Query Subscription Information\nThe client can use this method to retrieve the list of active subscriptions for NFV-MANO functional entity alarms subscribed by the client. It can be used e.g. for resynchronization after error situations. This method shall follow the provisions specified in the tables 7.5.5.3.2-1 and 7.5.5.3.2-2 for URI query parameters, request and response data structures, and response codes.\n", + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Accept", + "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "filter", + "description": "Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support receiving this parameter as part of the URI query string. The API consumer may supply this parameter. All attribute names that appear in the FmSubscription and in data types referenced from it shall be supported by the NFV-MANO functional entity in the filter expression.\n", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "nextpage_opaque_marker", + "description": "Marker to obtain the next page of a paged response. Shall be supported by the NFV-MANO functional entity if the entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource.\n", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "200 OK\nShall be returned when the list of subscriptions has been queried successfully. The response body shall contain in an array the representations of all active subscriptions of the functional block that invokes the method, i.e. zero or more representations of FM subscriptions as defined in clause 7.6.2.3. If the \"filter\" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Link": { + "description": "Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + } + }, + "/subscriptions/{subscriptionId}": { + "parameters": [ + { + "name": "subscriptionId", + "description": "Identifier of this subscription. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a POST request creating a new \"Individual subscription\" resource. It can also be retrieved from the \"id\" attribute in the payload body of that response.\n", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "get": { + "description": "Query Subscription Information. The client can use this method for reading an individual subscription for NFV-MANO functional entity alarms subscribed by the client. This method shall follow the provisions specified in the tables 7.5.6.3.2-1 and 7.5.6.3.2-2 for URI query parameters, request and response data structures, and response codes.\n", + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Accept", + "description": "Content-Types that are acceptable for the response. Reference: IETF RFC 7231.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "200 OK\nThe operation has completed successfully. The response body shall contain a representation of the subscription resource.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + }, + "delete": { + "description": "Terminate Subscription. This method terminates an individual subscription. This method shall follow the provisions specified in the tables 7.5.6.3.5-1 and 7.5.6.3.5-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, the \"Individual subscription\" resource shall not exist any longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. NOTE:\tDue to race conditions, some notifications might still be received by the formerly-subscribed API consumer for a certain time period after the deletion.\n", + "parameters": [ + { + "name": "Version", + "description": "Version of the API requested to use when responding to this request.\n", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Authorization", + "description": "The authorization token for the request. Reference: IETF RFC 7235.\n", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "204 NO CONTENT\nShall be returned when the \"Individual subscription\" resource has been deleted successfully. The response body shall be empty.\n", + "headers": { + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + } + } + }, + "400": { + "description": "400 BAD REQUEST\n400 code can be returned in the following specified cases, the specific cause has to be proper specified in the \"ProblemDetails\" structure to be returned.\nIf the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect query parameters or the payload body contains a syntactically incorrect data structure), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, it shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nIf there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\nIf the request contains a malformed access token, the API producer should respond with this response. The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\nThe use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "401": { + "description": "401 UNAUTHORIZED\nIf the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be provided.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "403": { + "description": "403 FORBIDDEN\nIf the API consumer is not allowed to perform a particular request to a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided. It should include in the \"detail\" attribute information about the source of the problem, and may indicate how to solve it.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "404": { + "description": "404 NOT FOUND\nIf the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. The \"ProblemDetails\" structure may be provided, including in the \"detail\" attribute information about the source of the problem, e.g. a wrong resource URI variable.\nThis response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response contains a 200 OK response code and a payload body with an empty array.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "405": { + "description": "405 METHOD NOT ALLOWED\nIf a particular HTTP method is not supported for a particular resource, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "406": { + "description": "406 NOT ACCEPTABLE\nIf the \"Accept\" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this response code. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "422": { + "description": "422 UNPROCESSABLE ENTITY\nIf the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and should include in the \"detail\" attribute more information about the source of the problem.\nThis error response code is only applicable for methods that have a request body.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "500": { + "description": "500 INTERNAL SERVER ERROR\nIf there is an application error not related to the client's input that cannot be easily mapped to any other HTTP response code (\"catch all error\"), the API producer shall respond with this response code. The \"ProblemDetails\" structure shall be provided, and shall include in the \"detail\" attribute more information about the source of the problem.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "503": { + "description": "503 SERVICE UNAVAILABLE\nIf the API producer encounters an internal overload situation of itself or of a system it relies on, it should respond with this response code, following the provisions in IETF RFC 7231 for the use of the \"Retry-After\" HTTP header and for the alternative to refuse the connection. The \"ProblemDetails\" structure may be omitted.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + }, + "504": { + "description": "504 GATEWAY TIMEOUT\nIf the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond with this response code.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the response.", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 0 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "maximum": 1, + "minimum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", + "type": "object", + "required": [ + "status", + "detail" + ], + "properties": { + "type": { + "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", + "type": "string", + "format": "URI" + }, + "title": { + "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", + "type": "string" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", + "type": "integer" + }, + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem.\n", + "type": "string" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", + "type": "string", + "format": "URI" + } + } + } + } + } + } + } + } + } + }, + "components": { + "parameters": { + "alarmId": { + "name": "alarmId", + "description": "Identifier of the alarm. This identifier can be retrieved from the \"id\" attribute of the \"alarm\" attribute in the AlarmNotification or AlarmClearedNotification. It can also be retrieved from the \"id\" attribute of the applicable array element in the payload body of the response to a GET request to the \"Alarms\" resource.\n", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "subscriptionId": { + "name": "subscriptionId", + "description": "Identifier of this subscription. This identifier can be retrieved from the resource referenced by the \"Location\" HTTP header in the response to a POST request creating a new \"Individual subscription\" resource. It can also be retrieved from the \"id\" attribute in the payload body of that response.\n", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + }, + "schemas": { + "FmSubscriptionRequest": { + "description": "This type represents a subscription request related to notifications about NFV-MANO faults.\n", + "type": "object", + "required": [ + "callbackUri" + ], + "properties": { + "filter": { + "description": "This type represents a subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "authentication": { + "type": "object", + "required": [ + "authType" + ], + "properties": { + "authType": { + "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use\n HTTP Basic authentication with the client credentials.\n* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the\n notification endpoint, use an OAuth 2.0 Bearer token, obtained\n using the client credentials grant type.\n* TLS_CERT: Every HTTP request to the notification endpoint is sent\n over a mutually authenticated TLS session, i.e. not only the\n server is authenticated, but also the client is authenticated\n during the TLS tunnel setup.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS", + "TLS_CERT" + ] + } + }, + "paramsBasic": { + "description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "userName": { + "description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + }, + "password": { + "description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + } + } + }, + "paramsOauth2ClientCredentials": { + "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "clientId": { + "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n", + "type": "string" + }, + "clientPassword": { + "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n", + "type": "string" + }, + "tokenEndpoint": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } + } + } + }, + "FmSubscription": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + }, + "AlarmModifications": { + "description": "This type represents attribute modifications for an \"Individual alarm\" resource, i.e. modifications to a resource representation based on the \"Alarm\" data type. The attributes of \"Alarm\" that can be modified are included in the \"AlarmModifications\" data type.\n", + "type": "object", + "required": [ + "ackState" + ], + "properties": { + "ackState": { + "description": "New value of the \"ackState\" attribute in \"Alarm\". Permitted values: * ACKNOWLEDGED\n", + "type": "string", + "enum": [ + "ACKNOWLEDGED" + ] + } + } + }, + "FmNotificationsFilter": { + "description": "This type represents a subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "requestBodies": { + "AlarmModifications": { + "description": "The parameter for the alarm modification, as defined in clause 7.6.2.8. The Content-Type header shall be set to \"application/merge-patch+json\" according to IETF RFC 7396.\n", + "content": { + "application/json": { + "schema": { + "description": "This type represents attribute modifications for an \"Individual alarm\" resource, i.e. modifications to a resource representation based on the \"Alarm\" data type. The attributes of \"Alarm\" that can be modified are included in the \"AlarmModifications\" data type.\n", + "type": "object", + "required": [ + "ackState" + ], + "properties": { + "ackState": { + "description": "New value of the \"ackState\" attribute in \"Alarm\". Permitted values: * ACKNOWLEDGED\n", + "type": "string", + "enum": [ + "ACKNOWLEDGED" + ] + } + } + } + } + }, + "required": true + }, + "FmSubscriptionRequest": { + "description": "Details of the subscription to be created, as defined in clause 7.6.2.2.\n", + "content": { + "application/json": { + "schema": { + "description": "This type represents a subscription request related to notifications about NFV-MANO faults.\n", + "type": "object", + "required": [ + "callbackUri" + ], + "properties": { + "filter": { + "description": "This type represents a subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "authentication": { + "type": "object", + "required": [ + "authType" + ], + "properties": { + "authType": { + "description": "Defines the types of Authentication / Authorization which the API consumer is willing to accept when receiving a notification. Permitted values: * BASIC: In every HTTP request to the notification endpoint, use\n HTTP Basic authentication with the client credentials.\n* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the\n notification endpoint, use an OAuth 2.0 Bearer token, obtained\n using the client credentials grant type.\n* TLS_CERT: Every HTTP request to the notification endpoint is sent\n over a mutually authenticated TLS session, i.e. not only the\n server is authenticated, but also the client is authenticated\n during the TLS tunnel setup.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "BASIC", + "OAUTH2_CLIENT_CREDENTIALS", + "TLS_CERT" + ] + } + }, + "paramsBasic": { + "description": "Parameters for authentication/authorization using BASIC. Shall be present if authType is \"BASIC\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "userName": { + "description": "Username to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + }, + "password": { + "description": "Password to be used in HTTP Basic authentication. Shall be present if it has not been provisioned out of band.\n", + "type": "string" + } + } + }, + "paramsOauth2ClientCredentials": { + "description": "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the contained information has not been provisioned out of band. Shall be absent otherwise.\n", + "type": "object", + "properties": { + "clientId": { + "description": "Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n", + "type": "string" + }, + "clientPassword": { + "description": "Client password to be used in the access token request of the OAuth 2.0 client credentials grant type. Shall be present if it has not been provisioned out of band. The clientId and clientPassword passed in a subscription shall not be the same as the clientId and clientPassword that are used to obtain authorization for API requests. Client credentials may differ between subscriptions. The value of clientPassword should be generated by a random process.\n", + "type": "string" + }, + "tokenEndpoint": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + } + }, + "responses": { + "Alarms.Get": { + "description": "200 OK\nShall be returned when information about zero or more alarms has been queried successfully. The response body shall contain in an array the representations of zero or more alarms as defined in clause 7.6.2.4. If the \"filter\" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Link": { + "description": "Reference to other resources. Used for paging in the present document.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "description": "The alarm data type encapsulates information about an alarm.\n", + "type": "object", + "required": [ + "id", + "managedObjectId", + "alarmRaisedTime", + "ackState", + "perceivedSeverity", + "eventTime", + "eventType", + "probableCause", + "isRootCause", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "managedObjectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "associatedFaultyInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "alarmRaisedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmClearedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "ackState": { + "description": "Acknowledgement state of the alarm. Permitted values: * UNACKNOWLEDGED * ACKNOWLEDGED.\n", + "type": "string", + "enum": [ + "UNACKNOWLEDGED", + "ACKNOWLEDGED" + ] + }, + "perceivedSeverity": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + }, + "eventTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "eventType": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + }, + "faultType": { + "description": "Additional information to clarify the type of the fault.\n", + "type": "string" + }, + "probableCause": { + "description": "Information about the probable cause of the fault.\n", + "type": "string" + }, + "isRootCause": { + "description": "Attribute indicating if this fault is the root for other correlated alarms. If true, then the alarms listed in the attribute CorrelatedAlarmId are caused by this fault.\n", + "type": "boolean" + }, + "correlatedAlarmIds": { + "description": "List of identifiers of other alarms correlated to this fault.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "faultDetails": { + "description": "Provides additional information about the fault.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objectInstance": { + "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" + } + } + } + } + } + } + } + } + } + } + }, + "Alarm.Get": { + "description": "200 OK\nShall be returned when information about an individual alarm has been read successfully. The response body shall contain a representation of the individual alarm\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "The alarm data type encapsulates information about an alarm.\n", + "type": "object", + "required": [ + "id", + "managedObjectId", + "alarmRaisedTime", + "ackState", + "perceivedSeverity", + "eventTime", + "eventType", + "probableCause", + "isRootCause", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "managedObjectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "associatedFaultyInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "alarmRaisedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmClearedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "ackState": { + "description": "Acknowledgement state of the alarm. Permitted values: * UNACKNOWLEDGED * ACKNOWLEDGED.\n", + "type": "string", + "enum": [ + "UNACKNOWLEDGED", + "ACKNOWLEDGED" + ] + }, + "perceivedSeverity": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + }, + "eventTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "eventType": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + }, + "faultType": { + "description": "Additional information to clarify the type of the fault.\n", + "type": "string" + }, + "probableCause": { + "description": "Information about the probable cause of the fault.\n", + "type": "string" + }, + "isRootCause": { + "description": "Attribute indicating if this fault is the root for other correlated alarms. If true, then the alarms listed in the attribute CorrelatedAlarmId are caused by this fault.\n", + "type": "boolean" + }, + "correlatedAlarmIds": { + "description": "List of identifiers of other alarms correlated to this fault.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "faultDetails": { + "description": "Provides additional information about the fault.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objectInstance": { + "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" + } + } + } + } + } + } + } + } + } + }, + "Alarm.Patch": { + "description": "200 OK\nShall be returned when the request has been accepted and completed. ì The response body shall contain attribute modifications for an \"Individual alarm\" resource (see clause 7.6.2.4).\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "This type represents attribute modifications for an \"Individual alarm\" resource, i.e. modifications to a resource representation based on the \"Alarm\" data type. The attributes of \"Alarm\" that can be modified are included in the \"AlarmModifications\" data type.\n", + "type": "object", + "required": [ + "ackState" + ], + "properties": { + "ackState": { + "description": "New value of the \"ackState\" attribute in \"Alarm\". Permitted values: * ACKNOWLEDGED\n", + "type": "string", + "enum": [ + "ACKNOWLEDGED" + ] + } + } + } + } + } + }, + "subscriptions.post.201": { + "description": "201 CREATED\nShall be returned when the subscription has been created successfully. The response body shall contain a representation of the created \"Individual subscription\" resource. The HTTP response shall include a \"Location:\"\" HTTP header that points to the created \"Individual subscription\" resource.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Location": { + "description": "The resource URI of the created subscription resource.\n", + "schema": { + "type": "string", + "format": "url", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } + } + } + }, + "subscriptions.get.200": { + "description": "200 OK\nShall be returned when the list of subscriptions has been queried successfully. The response body shall contain in an array the representations of all active subscriptions of the functional block that invokes the method, i.e. zero or more representations of FM subscriptions as defined in clause 7.6.2.3. If the \"filter\" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "Link": { + "description": "Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } + } + } + } + }, + "subscription.get.200": { + "description": "200 OK\nThe operation has completed successfully. The response body shall contain a representation of the subscription resource.\n", + "headers": { + "Content-Type": { + "description": "The MIME type of the body of the request. Reference: IETF RFC 7231\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + }, + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + } + }, + "content": { + "application/json": { + "schema": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } + } + } + }, + "subscription.delete.204": { + "description": "204 NO CONTENT\nShall be returned when the \"Individual subscription\" resource has been deleted successfully. The response body shall be empty.\n", + "headers": { + "WWW-Authenticate": { + "description": "Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token.\n", + "schema": { + "type": "string", + "minimum": 0, + "maximum": 1 + } + }, + "Version": { + "description": "Version of the API used in the response.\n", + "schema": { + "type": "string", + "minimum": 1, + "maximum": 1 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.yaml b/SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.yaml new file mode 100644 index 000000000..5f0cf5240 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/SOL009-NFVMANOFaultManagement-API.yaml @@ -0,0 +1,12122 @@ +openapi: 3.0.2 +info: + version: '1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1' + title: SOL009 - NFV-MANO Fault Management interface + description: > + SOL009 - NFV-MANO Fault Management interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + + Please report bugs to + https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + license: + name: ETSI Forge copyright notice + url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' +externalDocs: + description: ETSI GS NFV-SOL 009 V3.3.1 + url: >- + https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf +servers: + - url: 'http://127.0.0.1/nfvmanofm/v1' + - url: 'https://127.0.0.1/nfvmanofm/v1' +paths: + /api_versions: + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: false + schema: + type: string + - name: Authorization + description: 'The authorization token for the request. Reference: IETF RFC 7235' + in: header + required: false + schema: + type: string + get: + summary: Retrieve API version information + description: > + The GET method reads API version information. This method shall follow + the provisions specified in table 4.6.3.3.3.2-1 for request and response + data structures, and response codes. URI query parameters are not + supported. + responses: + '200': + description: > + 200 OK + + API version information was read successfully. The response body + shall contain 4.4 API version information, as defined in clause + 4.4.1.13. + content: + application/json: + schema: + description: | + This type represents API version information. + type: object + required: + - uriPrefix + - apiVersions + properties: + uriPrefix: + description: > + Specifies the URI prefix for the API, in the following + form {apiRoot}/{apiName}/{apiMajorVersion}/. + type: string + apiVersions: + description: > + Version(s) supported for the API signaled by the uriPrefix + attribute. + type: array + items: + type: object + required: + - version + properties: + version: + description: > + Identifies a supported version. The value of the + version attribute shall be a version identifier as + specified in clause 9.1 (SOL013). + type: string + isDeprecated: + description: > + If such information is available, this attribute + indicates whether use of the version signaled by the + version attribute is deprecated (true) or not + (false). + + A deprecated version is still supported by the API + producer but is recommended not to be used any + longer. When a version is no longer supported, it + does not appear in the response body. + type: boolean + retirementDate: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: The used API version. + schema: + type: string + maximum: 1 + minimum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '413': + description: > + 413 PAYLOAD TOO LARGE + + If the payload body of a request is larger than the amount of data + the API producer is willing or able to process, it shall respond + with this response code, following the provisions in IETF RFC 7231 + for the use of the "Retry-After" HTTP header and for closing the + connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '414': + description: > + 414 URI TOO LONG + + If the request URI of a request is longer than the API producer is + willing or able to process, it shall respond with this response + code. This condition can e.g. be caused by passing long queries in + the request URI of a GET request. The "ProblemDetails" structure may + be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '416': + description: | + 416 Range Not Satisfiable + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '429': + description: > + 429 TOO MANY REQUESTS + + If the API consumer has sent too many requests in a defined period + of time and the API producer is able to detect that condition ("rate + limiting"), the API producer shall respond with this response code, + following the provisions in IETF RFC 6585 [17] for the use of the + "Retry-After" HTTP header. The "ProblemDetails" structure shall be + provided and shall include in the "detail" attribute more + information about the source of the problem. + + The period of time and allowed number of requests are configured + within the API producer by means outside the scope of the present + document. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /alarms: + get: + description: > + Get Alarm List. The client can use this method to retrieve information + about the alarm list. This method shall follow the provisions specified + in the tables 7.5.3.3.2-1 and 7.5.3.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI + GS NFV-SOL 013. The NFV-MANO functional entity shall support + receiving this parameter as part of the URI query string. The API + consumer may supply this parameter. All attribute names that appear + in the FmSubscription and in data types referenced from it shall be + supported by the NFV-MANO functional entity in the filter + expression. + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about zero or more alarms has + been queried successfully. The response body shall contain in an + array the representations of zero or more alarms as defined in + clause 7.6.2.4. If the "filter" URI parameter was supplied in the + request, the data in the response body shall have been transformed + according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL + 013. If the NFV-MANO functional entity supports alternative 2 + (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: > + The MIME type of the body of the request. Reference: IETF RFC + 7231 + schema: + type: string + minimum: 1 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 + Link: + description: > + Reference to other resources. Used for paging in the present + document. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + The alarm data type encapsulates information about an alarm. + type: object + required: + - id + - managedObjectId + - alarmRaisedTime + - ackState + - perceivedSeverity + - eventTime + - eventType + - probableCause + - isRootCause + - _links + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + managedObjectId: + description: > + An identifier with the intention of being globally + unique. + type: string + associatedFaultyInstanceId: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + alarmRaisedTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + alarmChangedTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + alarmClearedTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + ackState: + description: > + Acknowledgement state of the alarm. Permitted values: * + UNACKNOWLEDGED * ACKNOWLEDGED. + type: string + enum: + - UNACKNOWLEDGED + - ACKNOWLEDGED + perceivedSeverity: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + eventType: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * COMMUNICATIONS_ALARM: An + alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated + with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + faultType: + description: | + Additional information to clarify the type of the fault. + type: string + probableCause: + description: | + Information about the probable cause of the fault. + type: string + isRootCause: + description: > + Attribute indicating if this fault is the root for other + correlated alarms. If true, then the alarms listed in + the attribute CorrelatedAlarmId are caused by this + fault. + type: boolean + correlatedAlarmIds: + description: > + List of identifiers of other alarms correlated to this + fault. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + faultDetails: + description: | + Provides additional information about the fault. + type: array + items: + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/alarms/{alarmId}': + parameters: + - name: alarmId + description: > + Identifier of the alarm. This identifier can be retrieved from the + "id" attribute of the "alarm" attribute in the AlarmNotification or + AlarmClearedNotification. It can also be retrieved from the "id" + attribute of the applicable array element in the payload body of the + response to a GET request to the "Alarms" resource. + in: path + required: true + schema: + type: string + get: + description: > + The client can use this method to read an individual alarm. This method + shall follow the provisions specified in the tables 7.5.4.3.2-1 and + 7.5.4.3.2-2 for URI query parameters, request and response data + structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about an individual alarm has + been read successfully. The response body shall contain a + representation of the individual alarm + headers: + Content-Type: + description: > + The MIME type of the body of the request. Reference: IETF RFC + 7231 + schema: + type: string + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: | + The alarm data type encapsulates information about an alarm. + type: object + required: + - id + - managedObjectId + - alarmRaisedTime + - ackState + - perceivedSeverity + - eventTime + - eventType + - probableCause + - isRootCause + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + managedObjectId: + description: | + An identifier with the intention of being globally unique. + type: string + associatedFaultyInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + alarmRaisedTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + alarmChangedTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + alarmClearedTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + ackState: + description: > + Acknowledgement state of the alarm. Permitted values: * + UNACKNOWLEDGED * ACKNOWLEDGED. + type: string + enum: + - UNACKNOWLEDGED + - ACKNOWLEDGED + perceivedSeverity: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service + affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence + of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + eventType: + description: > + The enumeration EventType represents those types of events + that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of + this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is associated + with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated + with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + faultType: + description: | + Additional information to clarify the type of the fault. + type: string + probableCause: + description: | + Information about the probable cause of the fault. + type: string + isRootCause: + description: > + Attribute indicating if this fault is the root for other + correlated alarms. If true, then the alarms listed in the + attribute CorrelatedAlarmId are caused by this fault. + type: boolean + correlatedAlarmIds: + description: > + List of identifiers of other alarms correlated to this + fault. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + faultDetails: + description: | + Provides additional information about the fault. + type: array + items: + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + patch: + description: > + This method modifies an "Individual alarm" resource. This method shall + follow the provisions specified in the tables 7.5.4.3.4-1 and + 7.5.4.3.4-2 for URI query parameters, request and response data + structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + - name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + schema: + type: string + requestBody: + description: > + The parameter for the alarm modification, as defined in clause + 7.6.2.8. The Content-Type header shall be set to + "application/merge-patch+json" according to IETF RFC 7396. + content: + application/json: + schema: + description: > + This type represents attribute modifications for an "Individual + alarm" resource, i.e. modifications to a resource representation + based on the "Alarm" data type. The attributes of "Alarm" that + can be modified are included in the "AlarmModifications" data + type. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". Permitted + values: * ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + required: true + responses: + '200': + description: > + 200 OK + + Shall be returned when the request has been accepted and completed. + ì The response body shall contain attribute modifications for an + "Individual alarm" resource (see clause 7.6.2.4). + headers: + Content-Type: + description: > + The MIME type of the body of the request. Reference: IETF RFC + 7231 + schema: + type: string + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents attribute modifications for an + "Individual alarm" resource, i.e. modifications to a resource + representation based on the "Alarm" data type. The attributes + of "Alarm" that can be modified are included in the + "AlarmModifications" data type. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". + Permitted values: * ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '409': + description: | + 409 CONFLICT + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '412': + description: > + 412 PRECONDITION FAILED + + Error: A precondition given in an HTTP request header is not + fulfilled. Typically, this is due to an ETag mismatch, indicating + that the resource was modified by another entity. The response body + should contain a ProblemDetails structure, in which the "detail" + attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /subscriptions: + post: + description: > + Subscribe. The POST method creates a new subscription. This method shall + follow the provisions specified in the tables 7.5.5.3.1-1 and + 7.5.5.3.1-2 for URI query parameters, request and response data + structures, and response codes. As the result of successfully executing + this method, a new "Individual subscription" resource as defined in + clause 7.5.6 shall have been created. This method shall not trigger any + notification. Creation of two "Individual subscription" resources with + the same callbackURI and the same filter can result in performance + degradation and will provide duplicates of notifications to the API + consumer, and might make sense only in very rare use cases. + Consequently, the NFV-MANO functional entity may either allow creating a + new "Individual subscription" resource if another "Individual + subscription" resource with the same filter and callbackUri already + exists (in which case it shall return the "201 Created" response code), + or may decide to not create a duplicate "Individual subscription" + resource (in which case it shall return a "303 See Other" response code + referencing the existing "Individual subscription" resource with the + same filter and callbackUri). + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + - name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + schema: + type: string + requestBody: + description: > + Details of the subscription to be created, as defined in clause + 7.6.2.2. + content: + application/json: + schema: + description: > + This type represents a subscription request related to + notifications about NFV-MANO faults. + type: object + required: + - callbackUri + properties: + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. It + shall comply with the provisions defined in table 7.6.3.2-1. + 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the + names of the notification types to facilitate automated + code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in + this attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * COMMUNICATIONS_ALARM: + An alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated + with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this + attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization + which the API consumer is willing to accept when + receiving a notification. Permitted values: * BASIC: In + every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to + the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the + contained information has not been provisioned out of + band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType + is "OAUTH2_CLIENT_CREDENTIALS" and the contained + information has not been provisioned out of band. Shall + be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + clientPassword: + description: > + Client password to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: true + responses: + '201': + description: > + 201 CREATED + + Shall be returned when the subscription has been created + successfully. The response body shall contain a representation of + the created "Individual subscription" resource. The HTTP response + shall include a "Location:"" HTTP header that points to the created + "Individual subscription" resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. Reference: IETF RFC + 7231 + schema: + type: string + minimum: 1 + maximum: 1 + Location: + description: | + The resource URI of the created subscription resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications + about VNF faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. It + shall comply with the provisions defined in table + 7.6.3.2-1. 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: + * AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of + the "notificationTypes" attribute are spelled exactly + as the names of the notification types to facilitate + automated code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in + this attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * + COMMUNICATIONS_ALARM: An alarm of this type is + associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated + with degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is + associated with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this + attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '303': + description: | + 303 See Other + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + get: + description: > + Query Subscription Information + + The client can use this method to retrieve the list of active + subscriptions for NFV-MANO functional entity alarms subscribed by the + client. It can be used e.g. for resynchronization after error + situations. This method shall follow the provisions specified in the + tables 7.5.5.3.2-1 and 7.5.5.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI + GS NFV-SOL 013. The NFV-MANO functional entity shall support + receiving this parameter as part of the URI query string. The API + consumer may supply this parameter. All attribute names that appear + in the FmSubscription and in data types referenced from it shall be + supported by the NFV-MANO functional entity in the filter + expression. + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when the list of subscriptions has been queried + successfully. The response body shall contain in an array the + representations of all active subscriptions of the functional block + that invokes the method, i.e. zero or more representations of FM + subscriptions as defined in clause 7.6.2.3. If the "filter" URI + parameter was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in + clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional + entity supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP + header in this response shall follow the provisions in clause + 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: > + The MIME type of the body of the request. Reference: IETF RFC + 7231 + schema: + type: string + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 + Link: + description: > + Reference to other resources. Used for paging in the present + document, see clause 4.7.2.1. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: > + This type represents a subscription related to notifications + about VNF faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. + It shall comply with the provisions defined in table + 7.6.3.2-1. 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted + values: * AlarmNotification * + AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of + the "notificationTypes" attribute are spelled + exactly as the names of the notification types to + facilitate automated code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in + this attribute. + type: array + items: + description: > + Indicates the relative level of urgency for + operator attention. * CRITICAL: The Critical + severity level indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates + the detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates + the clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types + of events that trigger an alarm. * + COMMUNICATIONS_ALARM: An alarm of this type is + associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated + with degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is + associated with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in + this attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/subscriptions/{subscriptionId}': + parameters: + - name: subscriptionId + description: > + Identifier of this subscription. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new "Individual subscription" resource. + It can also be retrieved from the "id" attribute in the payload body + of that response. + in: path + required: true + schema: + type: string + get: + description: > + Query Subscription Information. The client can use this method for + reading an individual subscription for NFV-MANO functional entity alarms + subscribed by the client. This method shall follow the provisions + specified in the tables 7.5.6.3.2-1 and 7.5.6.3.2-2 for URI query + parameters, request and response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + The operation has completed successfully. The response body shall + contain a representation of the subscription resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. Reference: IETF RFC + 7231 + schema: + type: string + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications + about VNF faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. It + shall comply with the provisions defined in table + 7.6.3.2-1. 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: + * AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of + the "notificationTypes" attribute are spelled exactly + as the names of the notification types to facilitate + automated code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in + this attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * + COMMUNICATIONS_ALARM: An alarm of this type is + associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated + with degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is + associated with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this + attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: "Terminate Subscription. This method terminates an individual subscription. This method shall follow the provisions specified in the tables 7.5.6.3.5-1 and 7.5.6.3.5-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, the \"Individual subscription\" resource shall not exist any longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. NOTE:\tDue to race conditions, some notifications might still be received by the formerly-subscribed API consumer for a certain time period after the deletion.\n" + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: > + 204 NO CONTENT + + Shall be returned when the "Individual subscription" resource has + been deleted successfully. The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI +components: + parameters: + alarmId: + name: alarmId + description: > + Identifier of the alarm. This identifier can be retrieved from the "id" + attribute of the "alarm" attribute in the AlarmNotification or + AlarmClearedNotification. It can also be retrieved from the "id" + attribute of the applicable array element in the payload body of the + response to a GET request to the "Alarms" resource. + in: path + required: true + schema: + type: string + subscriptionId: + name: subscriptionId + description: > + Identifier of this subscription. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the response to + a POST request creating a new "Individual subscription" resource. It can + also be retrieved from the "id" attribute in the payload body of that + response. + in: path + required: true + schema: + type: string + schemas: + FmSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about NFV-MANO faults. + type: object + required: + - callbackUri + properties: + filter: + description: > + This type represents a subscription filter related to notifications + about NFV-MANO functional entity faults. It shall comply with the + provisions defined in table 7.6.3.2-1. 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the names + of the notification types to facilitate automated code + generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this + attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level indicates + that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service + affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the detection + of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level indicates + that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the clearing + of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: | + Match VNF alarms with an event type listed in this attribute. + type: array + items: + description: > + The enumeration EventType represents those types of events + that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of + this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is associated + with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is associated + with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated with an + equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: | + Match VNF alarms with a probable cause listed in this attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the + API consumer is willing to accept when receiving a notification. + Permitted values: * BASIC: In every HTTP request to the + notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is + sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. Shall + be present if authType is "BASIC" and the contained information + has not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information has + not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + FmSubscription: + description: > + This type represents a subscription related to notifications about VNF + faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to notifications + about NFV-MANO functional entity faults. It shall comply with the + provisions defined in table 7.6.3.2-1. 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the names + of the notification types to facilitate automated code + generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this + attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level indicates + that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service + affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the detection + of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level indicates + that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the clearing + of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: | + Match VNF alarms with an event type listed in this attribute. + type: array + items: + description: > + The enumeration EventType represents those types of events + that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of + this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is associated + with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is associated + with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated with an + equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: | + Match VNF alarms with a probable cause listed in this attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + AlarmModifications: + description: > + This type represents attribute modifications for an "Individual alarm" + resource, i.e. modifications to a resource representation based on the + "Alarm" data type. The attributes of "Alarm" that can be modified are + included in the "AlarmModifications" data type. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". Permitted values: + * ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + FmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications + about NFV-MANO functional entity faults. It shall comply with the + provisions defined in table 7.6.3.2-1. 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the names of + the notification types to facilitate automated code generation + systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: | + Match VNF alarms with a perceived severity listed in this attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator attention. * + CRITICAL: The Critical severity level indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service + affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level indicates that + the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the clearing of + one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: | + Match VNF alarms with an event type listed in this attribute. + type: array + items: + description: > + The enumeration EventType represents those types of events that + trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is + associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is associated with + a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with degradation + in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated with an + equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: | + Match VNF alarms with a probable cause listed in this attribute. + type: array + items: + type: string + requestBodies: + AlarmModifications: + description: > + The parameter for the alarm modification, as defined in clause 7.6.2.8. + The Content-Type header shall be set to "application/merge-patch+json" + according to IETF RFC 7396. + content: + application/json: + schema: + description: > + This type represents attribute modifications for an "Individual + alarm" resource, i.e. modifications to a resource representation + based on the "Alarm" data type. The attributes of "Alarm" that can + be modified are included in the "AlarmModifications" data type. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". Permitted + values: * ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + required: true + FmSubscriptionRequest: + description: | + Details of the subscription to be created, as defined in clause 7.6.2.2. + content: + application/json: + schema: + description: > + This type represents a subscription request related to + notifications about NFV-MANO faults. + type: object + required: + - callbackUri + properties: + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. It + shall comply with the provisions defined in table 7.6.3.2-1. + 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the + names of the notification types to facilitate automated + code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this + attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * COMMUNICATIONS_ALARM: An + alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated + with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this + attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which + the API consumer is willing to accept when receiving a + notification. Permitted values: * BASIC: In every HTTP + request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. Shall be + absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information + has not been provisioned out of band. Shall be absent + otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been provisioned + out of band. The clientId and clientPassword passed in + a subscription shall not be the same as the clientId + and clientPassword that are used to obtain + authorization for API requests. Client credentials may + differ between subscriptions. The value of + clientPassword should be generated by a random + process. + type: string + clientPassword: + description: > + Client password to be used in the access token request + of the OAuth 2.0 client credentials grant type. Shall + be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a + subscription shall not be the same as the clientId and + clientPassword that are used to obtain authorization + for API requests. Client credentials may differ + between subscriptions. The value of clientPassword + should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: true + responses: + Alarms.Get: + description: > + 200 OK + + Shall be returned when information about zero or more alarms has been + queried successfully. The response body shall contain in an array the + representations of zero or more alarms as defined in clause 7.6.2.4. If + the "filter" URI parameter was supplied in the request, the data in the + response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO + functional entity supports alternative 2 (paging) according to clause + 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link + HTTP header in this response shall follow the provisions in clause + 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + schema: + type: string + minimum: 1 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 + Link: + description: > + Reference to other resources. Used for paging in the present + document. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + The alarm data type encapsulates information about an alarm. + type: object + required: + - id + - managedObjectId + - alarmRaisedTime + - ackState + - perceivedSeverity + - eventTime + - eventType + - probableCause + - isRootCause + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + managedObjectId: + description: | + An identifier with the intention of being globally unique. + type: string + associatedFaultyInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + alarmRaisedTime: + description: > + Date-time stamp. Representation: String formatted according + to IETF RFC 3339. + type: string + format: date-time + alarmChangedTime: + description: > + Date-time stamp. Representation: String formatted according + to IETF RFC 3339. + type: string + format: date-time + alarmClearedTime: + description: > + Date-time stamp. Representation: String formatted according + to IETF RFC 3339. + type: string + format: date-time + ackState: + description: > + Acknowledgement state of the alarm. Permitted values: * + UNACKNOWLEDGED * ACKNOWLEDGED. + type: string + enum: + - UNACKNOWLEDGED + - ACKNOWLEDGED + perceivedSeverity: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level indicates + that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service + affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence of + a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level indicates + that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the clearing + of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTime: + description: > + Date-time stamp. Representation: String formatted according + to IETF RFC 3339. + type: string + format: date-time + eventType: + description: > + The enumeration EventType represents those types of events + that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of + this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is associated + with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated with + an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + faultType: + description: | + Additional information to clarify the type of the fault. + type: string + probableCause: + description: | + Information about the probable cause of the fault. + type: string + isRootCause: + description: > + Attribute indicating if this fault is the root for other + correlated alarms. If true, then the alarms listed in the + attribute CorrelatedAlarmId are caused by this fault. + type: boolean + correlatedAlarmIds: + description: > + List of identifiers of other alarms correlated to this + fault. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + faultDetails: + description: | + Provides additional information about the fault. + type: array + items: + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + Alarm.Get: + description: > + 200 OK + + Shall be returned when information about an individual alarm has been + read successfully. The response body shall contain a representation of + the individual alarm + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + schema: + type: string + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: | + The alarm data type encapsulates information about an alarm. + type: object + required: + - id + - managedObjectId + - alarmRaisedTime + - ackState + - perceivedSeverity + - eventTime + - eventType + - probableCause + - isRootCause + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + managedObjectId: + description: | + An identifier with the intention of being globally unique. + type: string + associatedFaultyInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + alarmRaisedTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + alarmChangedTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + alarmClearedTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + ackState: + description: > + Acknowledgement state of the alarm. Permitted values: * + UNACKNOWLEDGED * ACKNOWLEDGED. + type: string + enum: + - UNACKNOWLEDGED + - ACKNOWLEDGED + perceivedSeverity: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level indicates + that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service + affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the detection + of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level indicates + that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the clearing + of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + eventType: + description: > + The enumeration EventType represents those types of events + that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of + this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is associated + with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is associated + with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated with an + equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + faultType: + description: | + Additional information to clarify the type of the fault. + type: string + probableCause: + description: | + Information about the probable cause of the fault. + type: string + isRootCause: + description: > + Attribute indicating if this fault is the root for other + correlated alarms. If true, then the alarms listed in the + attribute CorrelatedAlarmId are caused by this fault. + type: boolean + correlatedAlarmIds: + description: | + List of identifiers of other alarms correlated to this fault. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + faultDetails: + description: | + Provides additional information about the fault. + type: array + items: + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + Alarm.Patch: + description: > + 200 OK + + Shall be returned when the request has been accepted and completed. ì + The response body shall contain attribute modifications for an + "Individual alarm" resource (see clause 7.6.2.4). + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + schema: + type: string + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents attribute modifications for an "Individual + alarm" resource, i.e. modifications to a resource representation + based on the "Alarm" data type. The attributes of "Alarm" that can + be modified are included in the "AlarmModifications" data type. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". Permitted + values: * ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + subscriptions.post.201: + description: > + 201 CREATED + + Shall be returned when the subscription has been created successfully. + The response body shall contain a representation of the created + "Individual subscription" resource. The HTTP response shall include a + "Location:"" HTTP header that points to the created "Individual + subscription" resource. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + schema: + type: string + minimum: 1 + maximum: 1 + Location: + description: | + The resource URI of the created subscription resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications about + VNF faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. It + shall comply with the provisions defined in table 7.6.3.2-1. + 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the + names of the notification types to facilitate automated + code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this + attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * COMMUNICATIONS_ALARM: An + alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated + with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this + attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + subscriptions.get.200: + description: > + 200 OK + + Shall be returned when the list of subscriptions has been queried + successfully. The response body shall contain in an array the + representations of all active subscriptions of the functional block that + invokes the method, i.e. zero or more representations of FM + subscriptions as defined in clause 7.6.2.3. If the "filter" URI + parameter was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clause + 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL + 013 for this resource, inclusion of the Link HTTP header in this + response shall follow the provisions in clause 5.4.2.3 of ETSI GS + NFV-SOL 013. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + schema: + type: string + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 + Link: + description: > + Reference to other resources. Used for paging in the present + document, see clause 4.7.2.1. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: > + This type represents a subscription related to notifications + about VNF faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. It + shall comply with the provisions defined in table 7.6.3.2-1. + 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the + names of the notification types to facilitate automated + code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in + this attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * COMMUNICATIONS_ALARM: + An alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated + with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this + attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + subscription.get.200: + description: > + 200 OK + + The operation has completed successfully. The response body shall + contain a representation of the subscription resource. + headers: + Content-Type: + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + schema: + type: string + minimum: 1 + maximum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications about + VNF faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO functional entity faults. It + shall comply with the provisions defined in table 7.6.3.2-1. + 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). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. Permitted values: * + AlarmNotification * AlarmClearedNotification * + AlarmListRebuiltNotification The permitted values of the + "notificationTypes" attribute are spelled exactly as the + names of the notification types to facilitate automated + code generation systems. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this + attribute. + type: array + items: + description: > + Indicates the relative level of urgency for operator + attention. * CRITICAL: The Critical severity level + indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a + service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the + existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the + detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level + indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the + clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + eventTypes: + description: > + Match VNF alarms with an event type listed in this + attribute. + type: array + items: + description: > + The enumeration EventType represents those types of + events that trigger an alarm. * COMMUNICATIONS_ALARM: An + alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is + associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is + associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with + degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated + with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this + attribute. + type: array + items: + type: string + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + subscription.delete.204: + description: > + 204 NO CONTENT + + Shall be returned when the "Individual subscription" resource has been + deleted successfully. The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + minimum: 0 + maximum: 1 + Version: + description: | + Version of the API used in the response. + schema: + type: string + minimum: 1 + maximum: 1 \ No newline at end of file -- GitLab From 55a57f62bd1419d1732420f5d048586c77f48e76 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 9 Jul 2020 11:59:17 +0500 Subject: [PATCH 007/116] Added Test Cases for Subscriptions.robot --- .../FaultManagement-APIKeyword.robot | 84 ++++++++++ .../Subscriptions.robot | 154 ++++++++++++++++++ .../environment/variables.txt | 4 + .../jsons/alarmModifications.json | 3 + .../jsons/fmSubscriptionRequest.json | 3 + .../schemas/FmSubscription.schema.json | 97 +++++++++++ .../schemas/FmSubscriptions.schema.json | 100 ++++++++++++ 7 files changed, 445 insertions(+) create mode 100644 SOL009/NFVMANOFaultManagement-API/Subscriptions.robot create mode 100644 SOL009/NFVMANOFaultManagement-API/jsons/alarmModifications.json create mode 100644 SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/FmSubscription.schema.json create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/FmSubscriptions.schema.json diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index 9633d085f..b063a059b 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -166,4 +166,88 @@ DELETE Fault Management Individual Alarm Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/alarms/${alarmId} ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +POST Subscription + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/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/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Check Operation Occurrence Id + ${opOccId}= Get Value From Json ${response['headers']} $..Location + Should Not Be Empty ${opOccId} + +POST Subscription Duplication permitted + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + Pass Execution If ${NFVMANO_DUPLICATION} == 0 NVFO 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/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +POST Subscription Duplication not permitted + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + Pass Execution If ${NFVMANO_DUPLICATION} == 1 NVFO 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/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Subscriptions + Log Get the list of active subscriptions + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +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}/${apiMajorVersion}/subscriptions?${sub_filter} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Subscriptions with Invalid filter + Log Get the list of active subscriptions using an invalid filter + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${sub_filter_invalid} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +PUT Subscriptions + log Trying to perform a PUT Subscriptions. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +PATCH Subscriptions + log Trying to perform a PATCH Subscriptions. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +DELETE Subscriptions + log Trying to perform a DELETE Subscriptions. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot new file mode 100644 index 000000000..2f4a25ac1 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -0,0 +1,154 @@ +*** Settings *** +Resource environment/variables.txt +Resource FaultManagement-APIKeyword.robot +Library DependencyLibrary +Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Create a new Fault Management alarm subscription + [Documentation] Test ID:8.3.3.3.1 + ... Test title: Create a new Fault Management alarm subscription + ... Test objective: The objective is to create a new Fault management alarm subscriptions and perform a JSON schema and content validation of the returned fault management alarms subscription data structure + ... Pre-conditions: No subscription with the same filter and callbackUri exists + ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: subscription is created + POST Subscription + Check HTTP Response Status Code Is 201 + Check Operation Occurrence Id + Check HTTP Response Body Json Schema Is FmSubscription + + +Create a new alarm subscription - DUPLICATION + [Documentation] Test ID: 8.3.3.3.2 + ... Test title: Create a new alarm subscription - DUPLICATION + ... Test objective: The objective is to create a new subscription with the NFV-MANO allowing duplication and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Pre-conditions: subscription with the same filter and callbackUri exists + ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: the NFV-MANO allows creating a subscription resource if another subscription resource with the same filter and callbackUri already exists + ... Post-Conditions: duplicated subscription is created + POST Subscription Duplication permitted + Check HTTP Response Status Code Is 201 + Check Operation Occurrence Id + Check HTTP Response Body Json Schema Is FmSubscription + +Create a new alarm subscription - NO DUPLICATION + [Documentation] Test ID: 8.3.3.3.3 + ... Test title: Create a new alarm subscription - NO DUPLICATION + ... Test objective: The objective is to create a new subscription with the NFV-MANO not allowing duplication and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Pre-conditions: subscription with the same filter and callbackUri exists + ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: the NFV-MANO decides to not create a duplicate subscription resource + ... Post-Conditions: duplicated subscription is not created + POST Subscription Duplication not permitted + Check HTTP Response Status Code Is 303 + Check Operation Occurrence Id + Check HTTP Response Body Json Schema Is FmSubscription + +Retrieve a list of alarm subscriptions + [Documentation] Test ID: 8.3.3.3.4 + ... Test title: Retrieve a list of alarm subscriptions + ... Test objective: The objective is to retrieve the list of active subscriptions and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Pre-conditions: none + ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: noe + GET Subscriptions + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscriptions + +Retrieve a list of alarm subscriptions with filter + [Documentation] Test ID: 8.3.3.3.5 + ... Test title: Retrieve a list of alarm subscriptions with filter + ... Test objective: The objective is to retrieve the list of active subscriptions with filter and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Pre-conditions: none + ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Subscriptions with filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscriptions + +Get information about multiple alarms as a Paged Response + [Documentation] Test ID: 8.3.3.3.6 + ... Test title: Get information about multiple alarms as a Paged Response + ... Test objective: The objective is to retrieve information about active list subscriptions as a Paged Response + ... Pre-conditions: none + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Subscriptions + Check HTTP Response Status Code Is 200 + Check LINK in Header + +GET subscriptions - Bad Request Invalid attribute-based filtering parameters + [Documentation] Test ID: 8.3.3.3.7 + ... Test title: GET subscriptions - Bad Request Invalid attribute-based filtering parameters + ... Test objective: The objective is to retrieve the list of active subscriptions with Invalid attribute-based filtering parameters and perform a JSON schema and content validation of the returned problem details data structure. + ... Pre-conditions: none + ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Subscriptions with Invalid filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + + +Get information about multiple alarms - Bad Request Response too Big + [Documentation] Test ID: 8.3.3.3.8 + ... Test title: Get information about multiple alarms - Bad Request Response too Big + ... Test objective: The objective is to try to retrieve information about active list subscription to check that response is too big and perform a JSON schema and content validation of the returned problem details data structure + ... Pre-conditions: none + ... Reference: Clause clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Subscriptions + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +PUT subscriptions - Method not implemented + [Documentation] Test ID: 8.3.3.3.9 + ... Test title:PUT subscriptions - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to for Fault management subscriptions on VNF + ... Pre-conditions: none + ... RReference: clause 7.5.5.3.3 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Put Subscriptions + Check HTTP Response Status Code Is 405 + +PATCH subscriptions - Method not implemented + [Documentation] Test ID: 8.3.3.3.10 + ... Test title: PATCH subscriptions - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to for Fault management subscriptions on VNF + ... Pre-conditions: none + ... Reference: clause 7.5.5.3.4 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH Subscriptions + Check HTTP Response Status Code Is 405 + +DELETE subscriptions - Method not implemented + [Documentation] Test ID: 8.3.3.3.11 + ... Test title: DELETE subscriptions - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to for Fault management subscriptions on VNF + ... Pre-conditions: none + ... Reference: clause 7.5.5.3.5 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: subscription is not deleted + DELETE Subscriptions + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index f06277a9a..0e19218af 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -25,6 +25,10 @@ ${alarmId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d ${Etag}= an etag ${Etag_modified}= a modified etag +${NFVMANO_DUPLICATION} 1 +${sub_filter} filter +${sub_filter_invalid} filter_invalid + diff --git a/SOL009/NFVMANOFaultManagement-API/jsons/alarmModifications.json b/SOL009/NFVMANOFaultManagement-API/jsons/alarmModifications.json new file mode 100644 index 000000000..53121e5b7 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/jsons/alarmModifications.json @@ -0,0 +1,3 @@ +{ + "ackState": "ACKNOWLEDGED" +} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json b/SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json new file mode 100644 index 000000000..8d91c2b81 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json @@ -0,0 +1,3 @@ +{ + "callbackUri": "http://127.0.0.1/subscribe" +} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/FmSubscription.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/FmSubscription.schema.json new file mode 100644 index 000000000..f0d8052b1 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/FmSubscription.schema.json @@ -0,0 +1,97 @@ +{ + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/FmSubscriptions.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/FmSubscriptions.schema.json new file mode 100644 index 000000000..56a8441cc --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/FmSubscriptions.schema.json @@ -0,0 +1,100 @@ +{ + "type": "array", + "items": { + "description": "This type represents a subscription related to notifications about VNF faults.\n", + "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 subscription filter related to notifications about NFV-MANO functional entity faults. It shall comply with the provisions defined in table 7.6.3.2-1. 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", + "type": "object", + "properties": { + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * AlarmNotification * AlarmClearedNotification * AlarmListRebuiltNotification 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": "array", + "items": { + "type": "string", + "enum": [ + "AlarmNotification", + "AlarmClearedNotification", + "AlarmListRebuiltNotification" + ] + } + }, + "perceivedSeverities": { + "description": "Match VNF alarms with a perceived severity listed in this attribute.\n", + "type": "array", + "items": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service\n affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting\n condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a\n non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a\n potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the\n severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or\n more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + } + }, + "eventTypes": { + "description": "Match VNF alarms with an event type listed in this attribute.\n", + "type": "array", + "items": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the\n procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a\n software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a\n condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the\n quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment\n fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + } + }, + "probableCauses": { + "description": "Match VNF alarms with a probable cause listed in this attribute.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } +} +} -- GitLab From b1af86fe061950d965cc86975634ce168e956132 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 9 Jul 2020 13:16:36 +0500 Subject: [PATCH 008/116] Added Test Cases for IndiviualSubscription.robot --- .../FaultManagement-APIKeyword.robot | 48 ++++++++++++- .../IndividualSubscription.robot | 69 +++++++++++++++++++ .../environment/variables.txt | 2 +- 3 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index b063a059b..26a08bedc 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -250,4 +250,50 @@ DELETE Subscriptions Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${outputResponse}= Output response - Set Global Variable @{response} ${outputResponse} \ No newline at end of file + Set Global Variable @{response} ${outputResponse} + +POST Individual Subscription + 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}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Individual Subscription + log Trying to get information about an individual subscription + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +PUT Individual Subscription + 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}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +PATCH Individual Subscription + 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}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +DELETE Individual Subscription + log Trying to perform a DELETE. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Check Individual Subscription deleted + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + Integer response status 404 \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot new file mode 100644 index 000000000..8d0b713b0 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -0,0 +1,69 @@ +*** Settings *** +Resource environment/variables.txt +Resource FaultManagement-APIKeyword.robot +Library JSONLibrary +Library JSONSchemaLibrary schemas/ +Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} + +*** Test Cases *** +Post Individual Subscription - Method not implemented + [Documentation] Test ID: 8.3.3.4.1 + ... Test title: Post Individual Subscription - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed for Fault management subscription on NFV-MANO + ... Pre-conditions: none + ... Reference: clause 7.5.6.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: subscription is not created + POST Individual Subscription + Check HTTP Response Status Code Is 405 + +Get Information about an individual subscription + [Documentation] Test ID: 8.3.3.4.2 + ... Test title: Get Information about an individual subscription + ... Test objective: The objective is to read an individual subscription for NFV-MANO alarms subscribed by the client and perform a JSON schema and content validation of the returned fault management individual subscription data structure + ... Pre-conditions: The subscription with the given id exists + ... Reference: clause 7.5.6.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Individual Subscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscription + +PUT an individual subscription - Method not implemented + [Documentation] Test ID: 8.3.3.4.3 + ... Test title:PUT an individual subscription - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed for Fault management individual subscription on VNF + ... Pre-conditions: none + ... Reference: clause 7.5.6.3.3 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT Individual Subscription + Check HTTP Response Status Code Is 405 + +PATCH an individual subscription - Method not implemented + [Documentation] Test ID: 8.3.3.4.4 + ... Test title:PATCH an individual subscription - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed for Fault management individual subscription on VNF + ... Pre-conditions: none + ... Reference: clause 7.5.6.3.4 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH Individual Subscription + Check HTTP Response Status Code Is 405 + +DELETE an individual subscription + [Documentation] Test ID: 8.3.3.4.5 + ... Test title:DELETE an individual subscription + ... Test objective: The objective is to test that DELETE method removes individual subscription on VNF + ... Pre-conditions: The Subsbcription already exists + ... Reference: clause 7.5.6.3.5 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: subscription is not deleted + DELETE Individual Subscription + Check HTTP Response Status Code Is 204 + Check Individual Subscription deleted diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index 0e19218af..a71c20af5 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -29,7 +29,7 @@ ${NFVMANO_DUPLICATION} 1 ${sub_filter} filter ${sub_filter_invalid} filter_invalid - +${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f -- GitLab From c9a8557f624eeef84a3ccccc355fffca676fd1b0 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 13 Jul 2020 11:19:10 +0500 Subject: [PATCH 009/116] Added Test Cases for NotificationEndpoint.robot --- .../IndividualSubscription.robot | 2 +- .../NotificationEndpoint.robot | 149 +++++++++++ .../environment/variables.txt | 15 +- .../alarmClearedNotification.schema.json | 80 ++++++ .../alarmListRebuiltNotification.schema.json | 71 +++++ .../schemas/alarmNotification.schema.json | 250 ++++++++++++++++++ 6 files changed, 564 insertions(+), 3 deletions(-) create mode 100644 SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/alarmClearedNotification.schema.json create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/alarmListRebuiltNotification.schema.json create mode 100644 SOL009/NFVMANOFaultManagement-API/schemas/alarmNotification.schema.json diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot index 8d0b713b0..d1aa2c198 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -3,7 +3,7 @@ Resource environment/variables.txt Resource FaultManagement-APIKeyword.robot Library JSONLibrary Library JSONSchemaLibrary schemas/ -Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} *** Test Cases *** Post Individual Subscription - Method not implemented diff --git a/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot b/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot new file mode 100644 index 000000000..3d7cfc802 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot @@ -0,0 +1,149 @@ +*** Settings *** +Resource environment/variables.txt +Library MockServerLibrary +Library Process +Library OperatingSystem +Library Collections + +Suite Setup Create Sessions +Suite Teardown Terminate All Processes kill=true + +*** Test Cases *** +NFV-MANO Fault Alarm Notification + [Documentation] Test ID: 8.3.3.5.1 + ... Test title: NFV-MANO Fault Alarm Notification + ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Notification when a virtualised resource within an NFV-MANO instance fails, 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 NFV-MANO instance is instantiated, and a subscription for fault alarm notifications is available. + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Trigger the fault of a virtualised resource in the NFV-MANO instance (external action) + Check Alarm Notification Http POST Request Body Json Schema Is alarmNotification + Check Alarm Notification Http POST Request Body notificationType attribute Is alarmNotification + +NFV-MANO Fault Alarm Cleared Notification + [Documentation] Test ID: 8.3.3.5.2 + ... Test title: NFV-MANO Fault Alarm Cleared Notification + ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Cleared Notification when a faulty virtualised resource within an NFV-MANO instance is cleared, 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 NFV-MANO instance is instantiated, a virtualised resource is in faulty state, and a subscription for fault alarm cleared notifications is available. + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Trigger the clear of a faulty virtualised resource in the NFV-MANO instance (external action) + Check Alarm cleared Notification Http POST Request Body Json Schema Is alarmClearedNotification + Check Alarm cleared Notification Http POST Request Body notificationType attribute Is alarmClearedNotification + +NFV-MANO Fault Alarm List Rebuilt Notification + [Documentation] Test ID: 8.3.3.5.3 + ... Test title: NFV-MANO Fault Alarm List Rebuilt Notification + ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm List Rebuilt Notification when the NFV-MANO decides to rebuild the list of its NFV-MANO alarms, e.g. due to a corruption in the alarm storage, 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 NFV-MANO instance is instantiated, one or more virtualised resource are in faulty state, and a subscription for fault alarm list rebuilt notifications is available. + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Trigger the NFV-MANO fault alarm list rebuild in the NFVO (external action) + Check Alarm list rebuilt Notification Http POST Request Body Json Schema Is alarmListRebuiltNotification + Check Alarm list rebuilt Notification Http POST Request Body notificationType attribute Is alarmListRebuiltNotification + + +*** Keywords *** +Trigger the fault of a virtualised resource in the NFV-MANO instance (external action) + #do nothing + Log do nothing + +Trigger the clear of a faulty virtualised resource in the NFV-MANO instance (external action) + #do nothing + Log do nothing + +Trigger the NFV-MANO fault alarm list rebuild in the NFVO (external action) + #do nothing + Log do nothing + +Check Alarm List Rebuilt Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check Alarm List Rebuilt Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification Alarm List Rebuilt Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Check Alarm Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check Alarm Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification Alarm Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Check Alarm cleared Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + + +Check Alarm cleared Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification Alarm Cleareance Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + + +Check Alarm Clerance Notification Http POST Request Body changeType attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + + +Configure Notification Alarm List Rebuilt Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Configure Notification Alarm Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Configure Notification Alarm Cleareance Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Configure Notification Forward + [Arguments] ${schema} ${endpoint} ${endpoint_fwd} + Log Creating mock Http POST forward to handle ${schema} + &{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema} + &{notification_fwd}= Create Mock Http Forward ${endpoint_fwd} + Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd} + +Create Sessions + Start Process java -jar ../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index a71c20af5..eee387083 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -31,5 +31,16 @@ ${sub_filter_invalid} filter_invalid ${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f - - +${callback_uri} http://localhost +${callback_port} 9091 +${callback_endpoint} /endpoint +${callback_endpoint_fwd} /endpoint/check +${callback_endpoint_error} /endpoint_404 +${sleep_interval} 20s +${total_polling_time} 2 min +${polling_interval} 10 sec + +${notification_request} [] +${notification_response} [] + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/alarmClearedNotification.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/alarmClearedNotification.schema.json new file mode 100644 index 000000000..08131723d --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/alarmClearedNotification.schema.json @@ -0,0 +1,80 @@ +{ + "description": "This type represents an alarm cleared notification about VNF faults. The notification shall be triggered by the VNFM when an alarm has been cleared.\n", + "type": "object", + "required": [ + "id", + "notificationType", + "subscriptionId", + "timeStamp", + "alarmId", + "alarmClearedTime", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"AlarmClearedNotification\" for this notification type.\n", + "type": "string", + "enum": [ + "AlarmClearedNotification" + ] + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "alarmClearedTime": { + "description": "The time stamp indicating when the alarm was cleared.\n" + }, + "_links": { + "description": "Links to resources related to this notification.\n", + "type": "object", + "required": [ + "subscription", + "alarm" + ], + "properties": { + "subscription": { + "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" + } + } + }, + "alarm": { + "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 diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/alarmListRebuiltNotification.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/alarmListRebuiltNotification.schema.json new file mode 100644 index 000000000..bfe018df8 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/alarmListRebuiltNotification.schema.json @@ -0,0 +1,71 @@ +{ + "description": "This type represents a notification that the alarm list has been rebuilt, e.g. if the VNFM detects its storage holding the alarm list is corrupted. The notification shall be triggered by the VNFM when the alarm list has been rebuilt.\n", + "type": "object", + "required": [ + "id", + "notificationType", + "subscriptionId", + "timeStamp", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"AlarmListRebuiltNotification\" for this notification type.\n", + "type": "string", + "enum": [ + "AlarmListRebuiltNotification" + ] + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "_links": { + "description": "Links to resources related to this notification.\n", + "type": "object", + "required": [ + "subscription", + "alarms" + ], + "properties": { + "subscription": { + "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" + } + } + }, + "alarms": { + "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 diff --git a/SOL009/NFVMANOFaultManagement-API/schemas/alarmNotification.schema.json b/SOL009/NFVMANOFaultManagement-API/schemas/alarmNotification.schema.json new file mode 100644 index 000000000..1d31e7e34 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/schemas/alarmNotification.schema.json @@ -0,0 +1,250 @@ +{ + "name": "AlarmNotification", + "description": "Information of a VNF alarm.\n", + "in": "body", + "required": true, + "schema": { + "description": "This type represents an alarm notification about VNF faults. This notification shall be triggered by the VNFM when: * An alarm has been created. * An alarm has been updated, e.g. if the severity of the alarm has changed.\n", + "type": "object", + "required": [ + "id", + "notificationType", + "subscriptionId", + "timeStamp", + "alarm", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"AlarmNotification\" for this notification type.\n", + "type": "string", + "enum": [ + "AlarmNotification" + ] + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarm": { + "description": "The alarm data type encapsulates information about an alarm.\n", + "type": "object", + "required": [ + "id", + "managedObjectId", + "rootCauseFaultyResource", + "alarmRaisedTime", + "ackState", + "perceivedSeverity", + "eventTime", + "eventType", + "probableCause", + "isRootCause", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "managedObjectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "rootCauseFaultyResource": { + "description": "This type represents the faulty virtual resources that have a negative impact on a VNF.\n", + "type": "object", + "required": [ + "faultyResource", + "faultyResourceType" + ], + "properties": { + "faultyResource": { + "required": [ + "vimConnectionId", + "resourceId" + ], + "type": "object", + "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n", + "properties": { + "vimConnectionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "resourceProviderId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "resourceId": { + "description": "An identifier maintained by the VIM or other resource provider. It is expected to be unique within the VIM instance.\n", + "type": "string" + }, + "vimLevelResourceType": { + "description": "Type of the resource in the scope of the VIM or the resource provider.\n", + "type": "string" + } + } + }, + "faultyResourceType": { + "description": "The enumeration FaultyResourceType represents those types of faulty resource.\n", + "type": "string", + "enum": [ + "COMPUTE", + "STORAGE", + "NETWORK" + ] + } + } + }, + "alarmRaisedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "alarmClearedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "ackState": { + "description": "Acknowledgement state of the alarm. Permitted values: * UNACKNOWLEDGED * ACKNOWLEDGED.\n", + "type": "string", + "enum": [ + "UNACKNOWLEDGED", + "ACKNOWLEDGED" + ] + }, + "perceivedSeverity": { + "description": "Indicates the relative level of urgency for operator attention. * CRITICAL: The Critical severity level indicates that a service affecting condition has occurred and an immediate corrective action\n is required. Such a severity can be reported, for example, when a\n managed object becomes totally out of service and its capability needs\n to be restored (ITU-T Recommendation X.733).\n* MAJOR: The Major severity level indicates that a service affecting condition has developed and an urgent corrective action is required.\n Such a severity can be reported, for example, when there is a severe\n degradation in the capability of the managed object and its full\n capability needs to be restored (ITU-T Recommendation X.733).\n* MINOR: The Minor severity level indicates the existence of a non-service affecting fault condition and that corrective action\n should be taken in order to prevent a more serious (for example,\n service affecting) fault. Such a severity can be reported, for\n example, when the detected alarm condition is not currently degrading\n the capacity of the managed object (ITU-T Recommendation X.733).\n* WARNING: The Warning severity level indicates the detection of a potential or impending service affecting fault, before any significant\n effects have been felt. Action should be taken to further diagnose (if\n necessary) and correct the problem in order to prevent it from\n becoming a more serious service affecting fault (ITU-T Recommendation\n X.733).\n* INDETERMINATE: The Indeterminate severity level indicates that the severity level cannot be determined (ITU-T Recommendation X.733).\n* CLEARED: The Cleared severity level indicates the clearing of one or more previously reported alarms. This alarm clears all alarms for this\n managed object that have the same Alarm type, Probable cause and\n Specific problems (if given) (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE", + "CLEARED" + ] + }, + "eventTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "eventType": { + "description": "The enumeration EventType represents those types of events that trigger an alarm. * COMMUNICATIONS_ALARM: An alarm of this type is associated with the procedure and/or process required conveying information from one point\n to another (ITU-T Recommendation X.733).\n* PROCESSING_ERROR_ALARM: An alarm of this type is associated with a software or processing fault (ITU-T Recommendation X.733).\n* ENVIRONMENTAL_ALARM: An alarm of this type is associated with a condition related to an enclosure in which the equipment resides\n (ITU-T Recommendation X.733).\n* QOS_ALARM: An alarm of this type is associated with degradation in the quality of a service (ITU-T Recommendation X.733).\n* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment fault (ITU-T Recommendation X.733).\n", + "type": "string", + "enum": [ + "COMMUNICATIONS_ALARM", + "PROCESSING_ERROR_ALARM", + "ENVIRONMENTAL_ALARM", + "QOS_ALARM", + "EQUIPMENT_ALARM" + ] + }, + "faultType": { + "description": "Additional information to clarify the type of the fault.\n", + "type": "string" + }, + "probableCause": { + "description": "Information about the probable cause of the fault.\n", + "type": "string" + }, + "isRootCause": { + "description": "Attribute indicating if this fault is the root for other correlated alarms. If TRUE, then the alarms listed in the attribute CorrelatedAlarmId are caused by this fault.\n", + "type": "boolean" + }, + "correlatedAlarmIds": { + "description": "List of identifiers of other alarms correlated to this fault.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "faultDetails": { + "description": "Provides additional information about the fault.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "_links": { + "description": "Links for 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" + } + } + }, + "objectInstance": { + "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" + } + } + } + } + } + } + }, + "_links": { + "description": "Links to resources related to this notification.\n", + "type": "object", + "required": [ + "subscription" + ], + "properties": { + "subscription": { + "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 From c4acca6e3d4c8dd35383ff09038fdb6ad7289112 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 17 Aug 2020 12:25:22 +0500 Subject: [PATCH 010/116] Added Test Cases for ApiVersion.robot --- .../ApiVersion.robot | 211 ++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 SOL009/NFVMANOFaultManagement-API/ApiVersion.robot diff --git a/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot b/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot new file mode 100644 index 000000000..a02570f36 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot @@ -0,0 +1,211 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library DependencyLibrary +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +POST API Version - Method not implemented + [Documentation] Test ID: 8.3.3.6.1 + ... Test title: POST API version - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version + [Documentation] Test ID: 8.3.3.6.2 + ... Test title: GET API Version + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version - Method not implemented + [Documentation] Test ID: 8.3.3.6.3 + ... Test title: PUT API Version - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version - Method not implemented + [Documentation] Test ID: 8.3.3.6.4 + ... Test title: PATCH API Version - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version - Method not implemented + [Documentation] Test ID: 8.3.3.6.5 + ... Test title: DELETE API Version - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +POST API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.3.6.6 + ... Test title: POST API version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version with apiMajorVerion + [Documentation] Test ID: 8.3.3.6.7 + ... Test title: GET API Version with apiMajorVerion + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.3.6.8 + ... Test title: PUT API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.3.6.9 + ... Test title: PATCH API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.3.6.10 + ... Test title: DELETE API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +*** Keywords *** +POST API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + ${schema} = Catenate ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK -- GitLab From 274d83168769ee528b2e843629a86f8a175be988 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 19 Aug 2020 14:15:57 +0500 Subject: [PATCH 011/116] fixed issues --- .../NFVMANOFaultManagement-API/Alarms.robot | 10 ++++----- .../FaultManagement-APIKeyword.robot | 22 +++++++++++++------ .../IndividualAlarm.robot | 22 +++++++++---------- .../IndividualSubscription.robot | 8 +++---- .../NotificationEndpoint.robot | 4 ++-- .../Subscriptions.robot | 12 +++++----- 6 files changed, 42 insertions(+), 36 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index 85e1dc22a..f9ee94c8a 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -11,7 +11,7 @@ Library OperatingSystem POST Alarms - Method not implemented [Documentation] Test ID: 8.3.3.1.1 ... Test title: POST Alarms - Method not implemented - ... Test objective: The objective is to test that Post method is not allowed to create Fault management alarms on NFV-MANO + ... Test objective: The objective is to test that Post method is not allowed to create fault management alarms on NFV-MANO ... Pre-conditions: none ... Reference: clause 7.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -63,7 +63,7 @@ Get information about multiple alarms Bad Request Invalid attribute-based filter Get information about multiple alarms as a Paged Response [Documentation] Test ID: 8.3.3.1.5 ... Test title: Get information about multiple alarms as a Paged Response - ... Test objective: The objective is to retrieve information about the alarm list as a Paged Response + ... Test objective: The objective is to retrieve information about the alarm list as a Paged Response. ... Pre-conditions: none ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -89,7 +89,7 @@ Get information about multiple alarms - Bad Request Response too Big PUT Alarms - Method not implemented [Documentation] Test ID: 8.3.3.1.7 ... Test title: PUT Alarms - Method not implemented - ... Test objective: The objective is to test that PUT method is not allowed to for Fault management alarms on NFV-MANO + ... Test objective: The objective is to test that PUT method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none ... Reference: clause 7.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -101,7 +101,7 @@ PUT Alarms - Method not implemented PATCH Alarms - Method not implemented [Documentation] Test ID: 8.3.3.1.8 ... Test title: PATCH Alarms - Method not implemented - ... Test objective: The objective is to test that PATCH method is not allowed to for Fault management alarms on NFV-MANO + ... Test objective: The objective is to test that PATCH method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none ... Reference: clause 7.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -113,7 +113,7 @@ PATCH Alarms - Method not implemented DELETE Alarms - Method not implemented [Documentation] Test ID: 8.3.3.1.9 ... Test title: POST Alarms - Method not implemented - ... Test objective: The objective is to test that DELETE method is not allowed for Fault management alarms on NFV-MANO + ... Test objective: The objective is to test that DELETE method is not allowed for fault management alarms on NFV-MANO ... Pre-conditions: none ... Reference: clause 7.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index 26a08bedc..75b547369 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -28,7 +28,7 @@ Check HTTP Response Status Code Is Log Status code validated GET Fault Management Alarms - Log Query NFVO The GET method queries information about multiple alarms. + Log Query NFV-MANO The GET method queries information about multiple alarms. Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query @@ -43,7 +43,7 @@ Check HTTP Response Body Json Schema Is Log Json Schema Validation OK GET Fault Management Alarms With Filters - Log Query NFVO The GET method queries information about multiple alarms with filters. + Log Query NFV-MANO The GET method queries information about multiple alarms with filters. Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query @@ -52,7 +52,7 @@ GET Fault Management Alarms With Filters Set Global Variable @{response} ${outputResponse} GET Fault Management Alarms With Invalid Filters - Log Query NFVO The GET method queries information about multiple alarms with filters. + Log Query NFV-MANO The GET method queries information about multiple alarms with filters. Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query @@ -103,7 +103,7 @@ Send POST request for fault management Individual Alarm Set Global Variable @{response} ${outputResponse} GET Fault Management Individual Alarm - Log Query VNF The GET method queries information about an alarm. + Log Query NFV-MANO The GET method queries information about an alarm. Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -122,7 +122,7 @@ PUT Fault Management Individual Alarm ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Check Postcondition fault management individual alarm Exists +Check Postcondition fault management individual alarm exists Log Checking that individual alarm exists GET Fault Management Individual Alarm Check HTTP Response Status Code Is 200 @@ -139,7 +139,7 @@ PATCH Fault Management Individual Alarm Set Global Variable @{response} ${outputResponse} PATCH Fault Management Individual Alarm - precondition failed - log Trying to perform a PATCH. This method modifies an individual alarm resource + log Trying to perform a PATCH. This method fail to modifies an individual alarm resource Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} Set Headers {"If-Match": "${original_etag[0]}"} @@ -150,7 +150,7 @@ PATCH Fault Management Individual Alarm - precondition failed Set Global Variable @{response} ${outputResponse} PATCH Fault Management Individual Alarm Conflict - log Trying to perform a PATCH. This method modifies an individual alarm resource + log Trying to perform a PATCH. This method fail to modifies an individual alarm resource Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} Set Headers {"If-Match": "${Etag}"} @@ -182,6 +182,14 @@ Check Operation Occurrence Id ${opOccId}= Get Value From Json ${response['headers']} $..Location Should Not Be Empty ${opOccId} +Check PostCondition Subscription is created + log Trying to get information about an individual subscription + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${response['body']['id']} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + POST Subscription Duplication permitted Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions Pass Execution If ${NFVMANO_DUPLICATION} == 0 NVFO is not permitting duplication. Skipping the test diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot index ab533b017..23e3d369e 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -13,7 +13,7 @@ Library DependencyLibrary POST Alarm - Method not implemented [Documentation] Test ID: 8.3.3.2.1 ... Test title: POST Alarm - Method not implemented - ... Test objective: The objective is to test that Post method is not allowed to create Fault management individual alarm on NFV-MANO + ... Test objective: The objective is to test that Post method is not allowed to create fault management individual alarm on NFV-MANO ... Pre-conditions: none ... Reference: clause 7.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -38,7 +38,7 @@ Get information about an fault management individual alarm PUT Alarm - Method not implemented [Documentation] Test ID: 8.3.3.2.3 ... Test title: PUT Alarm - Method not implemented - ... Test objective: he objective is to test that PUT method is not allowed to for Fault management individual alarm on NFV-MANO + ... Test objective: he objective is to test that PUT method is not allowed to for fault management individual alarm on NFV-MANO ... Pre-conditions: The related alarm exists ... Reference: clause 7.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -55,8 +55,7 @@ PATCH Fault Management Individual Alarm ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: none - Check Postcondition fault management individual alarm Exists + ... Post-Conditions: Alarm is modified. PATCH Fault Management Individual Alarm Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AlarmModification @@ -69,11 +68,11 @@ Modify an individual alarm resource - Precondition failed ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: none - Check Postcondition fault management individual alarm Exists + ... Post-Conditions: Alarm is not modified. PATCH Fault Management Individual Alarm - precondition failed Check HTTP Response Status Code Is 409 Check HTTP Response Body Json Schema Is ProblemDetails + Check Postcondition fault management individual alarm exists Modify an individual alarm resource - Conflict [Documentation] Test ID: 8.3.3.2.6 @@ -83,22 +82,21 @@ Modify an individual alarm resource - Conflict ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: none - Depends On Test PATCH Fault Management Individual Alarm - Check Postcondition fault management individual alarm Exists + ... Post-Conditions: Alarm is not modified. PATCH Fault Management Individual Alarm Conflict Check HTTP Response Status Code Is 412 Check HTTP Response Body Json Schema Is ProblemDetails + Check Postcondition fault management individual alarm exists DELETE Alarm - Method not implemented [Documentation] Test ID: 8.3.3.2.7 ... Test title: DELETE Alarm - Method not implemented - ... Test objective: The objective is to test that DELETE method is not allowed to for Fault management individual alarm on NFV-MANO - ... Pre-conditions: nona + ... Test objective: The objective is to test that DELETE method is not allowed to delete fault management individual alarm on NFV-MANO. + ... Pre-conditions: none ... Reference: clause 7.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The individual alarm still exists DELETE Fault Management Individual Alarm Check HTTP Response Status Code Is 405 - Check Postcondition fault management individual alarm Exists \ No newline at end of file + Check Postcondition fault management individual alarm exists \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot index d1aa2c198..470d86a23 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -9,7 +9,7 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Post Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.3.4.1 ... Test title: Post Individual Subscription - Method not implemented - ... Test objective: The objective is to test that POST method is not allowed for Fault management subscription on NFV-MANO + ... Test objective: The objective is to test that POST method is not allowed for fault management subscription on NFV-MANO ... Pre-conditions: none ... Reference: clause 7.5.6.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -21,7 +21,7 @@ Post Individual Subscription - Method not implemented Get Information about an individual subscription [Documentation] Test ID: 8.3.3.4.2 ... Test title: Get Information about an individual subscription - ... Test objective: The objective is to read an individual subscription for NFV-MANO alarms subscribed by the client and perform a JSON schema and content validation of the returned fault management individual subscription data structure + ... Test objective: The objective is to read an individual subscription from NFV-MANO alarms subscribed by the client and perform a JSON schema and content validation of the returned fault management individual subscription data structure ... Pre-conditions: The subscription with the given id exists ... Reference: clause 7.5.6.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -34,7 +34,7 @@ Get Information about an individual subscription PUT an individual subscription - Method not implemented [Documentation] Test ID: 8.3.3.4.3 ... Test title:PUT an individual subscription - Method not implemented - ... Test objective: The objective is to test that PUT method is not allowed for Fault management individual subscription on VNF + ... Test objective: The objective is to test that PUT method is not allowed for fault management individual subscription on VNF ... Pre-conditions: none ... Reference: clause 7.5.6.3.3 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -46,7 +46,7 @@ PUT an individual subscription - Method not implemented PATCH an individual subscription - Method not implemented [Documentation] Test ID: 8.3.3.4.4 ... Test title:PATCH an individual subscription - Method not implemented - ... Test objective: The objective is to test that PATCH method is not allowed for Fault management individual subscription on VNF + ... Test objective: The objective is to test that PATCH method is not allowed for fault management individual subscription on VNF ... Pre-conditions: none ... Reference: clause 7.5.6.3.4 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO diff --git a/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot b/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot index 3d7cfc802..ed61029e8 100644 --- a/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot +++ b/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot @@ -12,7 +12,7 @@ Suite Teardown Terminate All Processes kill=true NFV-MANO Fault Alarm Notification [Documentation] Test ID: 8.3.3.5.1 ... Test title: NFV-MANO Fault Alarm Notification - ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Notification when a virtualised resource within an NFV-MANO instance fails, 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. + ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Notification when a resource within an NFV-MANO instance fails, 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 NFV-MANO instance is instantiated, and a subscription for fault alarm notifications is available. ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -25,7 +25,7 @@ NFV-MANO Fault Alarm Notification NFV-MANO Fault Alarm Cleared Notification [Documentation] Test ID: 8.3.3.5.2 ... Test title: NFV-MANO Fault Alarm Cleared Notification - ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Cleared Notification when a faulty virtualised resource within an NFV-MANO instance is cleared, 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. + ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Cleared Notification when a faulty resource within an NFV-MANO instance is cleared, 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 NFV-MANO instance is instantiated, a virtualised resource is in faulty state, and a subscription for fault alarm cleared notifications is available. ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot index 2f4a25ac1..ab61f8d46 100644 --- a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -10,8 +10,8 @@ Library JSONSchemaLibrary schemas/ *** Test Cases *** Create a new Fault Management alarm subscription [Documentation] Test ID:8.3.3.3.1 - ... Test title: Create a new Fault Management alarm subscription - ... Test objective: The objective is to create a new Fault management alarm subscriptions and perform a JSON schema and content validation of the returned fault management alarms subscription data structure + ... Test title: Create a new fault management alarm subscription + ... Test objective: The objective is to create a new fault management alarm subscription and perform a JSON schema and content validation of the returned fault management alarms subscription data structure ... Pre-conditions: No subscription with the same filter and callbackUri exists ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -21,7 +21,7 @@ Create a new Fault Management alarm subscription Check HTTP Response Status Code Is 201 Check Operation Occurrence Id Check HTTP Response Body Json Schema Is FmSubscription - + Check PostCondition Subscription is created Create a new alarm subscription - DUPLICATION [Documentation] Test ID: 8.3.3.3.2 @@ -120,7 +120,7 @@ Get information about multiple alarms - Bad Request Response too Big PUT subscriptions - Method not implemented [Documentation] Test ID: 8.3.3.3.9 ... Test title:PUT subscriptions - Method not implemented - ... Test objective: The objective is to test that PUT method is not allowed to for Fault management subscriptions on VNF + ... Test objective: The objective is to test that PUT method is not allowed to for fault management subscriptions on VNF ... Pre-conditions: none ... RReference: clause 7.5.5.3.3 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -132,7 +132,7 @@ PUT subscriptions - Method not implemented PATCH subscriptions - Method not implemented [Documentation] Test ID: 8.3.3.3.10 ... Test title: PATCH subscriptions - Method not implemented - ... Test objective: The objective is to test that PATCH method is not allowed to for Fault management subscriptions on VNF + ... Test objective: The objective is to test that PATCH method is not allowed to for fault management subscriptions on VNF ... Pre-conditions: none ... Reference: clause 7.5.5.3.4 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -144,7 +144,7 @@ PATCH subscriptions - Method not implemented DELETE subscriptions - Method not implemented [Documentation] Test ID: 8.3.3.3.11 ... Test title: DELETE subscriptions - Method not implemented - ... Test objective: The objective is to test that DELETE method is not allowed to for Fault management subscriptions on VNF + ... Test objective: The objective is to test that DELETE method is not allowed to for fault management subscriptions on VNF ... Pre-conditions: none ... Reference: clause 7.5.5.3.5 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO -- GitLab From be3650cfeea3113e656549a4e24545be81d2a0e1 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 19 Aug 2020 15:56:34 +0500 Subject: [PATCH 012/116] Postcondition for creation of duplicate subscription added --- .../FaultManagement-APIKeyword.robot | 22 +++++++++++++++++++ .../Subscriptions.robot | 2 ++ 2 files changed, 24 insertions(+) diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index 75b547369..bcf560e44 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -201,6 +201,15 @@ POST Subscription Duplication permitted ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} +Check Postcondition FaultManagement Subscription Is Set + Log Check Postcondition subscription exist + Set Headers {"Accept": "${ACCEPT_JSON}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${response['body']['id']} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + + POST Subscription Duplication not permitted Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions Pass Execution If ${NFVMANO_DUPLICATION} == 1 NVFO is not permitting duplication. Skipping the test @@ -212,6 +221,19 @@ POST Subscription Duplication not permitted ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} +Check Postcondition Subscription Resource Returned in Location Header Is Available + Log Going to check postcondition + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${response['headers']['Location']} + Integer response status 200 + Log Received a 200 OK as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + ${result}= Output response body + Validate Json FMSubscription.schema.json ${result} + Log Validated FMSubscription schema + + GET Subscriptions Log Get the list of active subscriptions Set Headers {"Accept": "${ACCEPT}"} diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot index ab61f8d46..3867997d9 100644 --- a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -36,6 +36,7 @@ Create a new alarm subscription - DUPLICATION Check HTTP Response Status Code Is 201 Check Operation Occurrence Id Check HTTP Response Body Json Schema Is FmSubscription + Check Postcondition FaultManagement Subscription Is Set Create a new alarm subscription - NO DUPLICATION [Documentation] Test ID: 8.3.3.3.3 @@ -50,6 +51,7 @@ Create a new alarm subscription - NO DUPLICATION Check HTTP Response Status Code Is 303 Check Operation Occurrence Id Check HTTP Response Body Json Schema Is FmSubscription + Check Postcondition Subscription Resource Returned in Location Header Is Available Retrieve a list of alarm subscriptions [Documentation] Test ID: 8.3.3.3.4 -- GitLab From b82ac978b904d267b699091a75d7daefabf3f689 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 19 Aug 2020 15:59:37 +0500 Subject: [PATCH 013/116] Added postcondition for individualSubscription --- .../FaultManagement-APIKeyword.robot | 4 ++++ .../NFVMANOFaultManagement-API/IndividualSubscription.robot | 1 + 2 files changed, 5 insertions(+) diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index bcf560e44..b7b9174a6 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -290,6 +290,10 @@ POST Individual Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} +Check Postcondition subscription not created + GET Individual Subscription + Check HTTP Response Status Code Is 404 + GET Individual Subscription log Trying to get information about an individual subscription Set Headers {"Accept":"${ACCEPT}"} diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot index 470d86a23..9d9b91a64 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -17,6 +17,7 @@ Post Individual Subscription - Method not implemented ... Post-Conditions: subscription is not created POST Individual Subscription Check HTTP Response Status Code Is 405 + Check Postcondition subscription not created Get Information about an individual subscription [Documentation] Test ID: 8.3.3.4.2 -- GitLab From ffcd5734a5b15e43a74657bc597b5930a6b11bab Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 21 Aug 2020 10:30:43 +0500 Subject: [PATCH 014/116] added test case for alarm attribute-based filtering --- .../NFVMANOFaultManagement-API/Alarms.robot | 72 +++++++++++++++++++ .../FaultManagement-APIKeyword.robot | 27 ++++++- .../environment/variables.txt | 3 + 3 files changed, 101 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index f9ee94c8a..bffdf4308 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -85,6 +85,78 @@ Get information about multiple alarms - Bad Request Response too Big GET Fault Management Alarms Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails + +GET information about alarms with attribute-based filter "id" + [Documentation] Test ID: 8.3.3.1.14 + ... Test title: GET information about alarms with attribute-based filter "id" + ... Test objective: The objective is to retrieve information about the alarm list with alarm filter "id" + ... Pre-conditions: + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Alarms Task with filter "id" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarm + Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "id" + +GET information about multiple alarms with attribute-based filter "managedObjectId" + [Documentation] Test ID: 8.3.3.1.15 + ... Test title: GET information about multiple alarms with attribute-based filter "managedObjectId" + ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "managedObjectId" + ... Pre-conditions: + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Alarms Task with filter "managedObjectId" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarms + Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "managedObjectId" + +GET information about multiple alarms with attribute-based filter "eventType" + [Documentation] Test ID: 8.3.3.1.17 + ... Test title: GET information about multiple alarms with attribute-based filter "eventType" + ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "eventType" + ... Pre-conditions: + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Alarms Task with filter "eventType" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarms + Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "eventType" + +GET information about multiple alarms with attribute-based filter "perceivedSeverity" + [Documentation] Test ID: 8.3.3.1.18 + ... Test title: GET information about multiple alarms with attribute-based filter "perceivedSeverity" + ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "perceivedSeverity" + ... Pre-conditions: + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Alarms Task with filter "perceivedSeverity" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarms + Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "perceivedSeverity" + +GET information about multiple alarms with attribute-based filter "probableCause" + [Documentation] Test ID: 8.3.3.1.19 + ... Test title: GET information about multiple alarms with attribute-based filter "probableCause" + ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "probableCause" + ... Pre-conditions: + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Alarms Task with filter "probableCause" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Alarms + Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "probableCause" + + PUT Alarms - Method not implemented [Documentation] Test ID: 8.3.3.1.7 diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index b7b9174a6..7560790ba 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -330,4 +330,29 @@ Check Individual Subscription deleted Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} - Integer response status 404 \ No newline at end of file + Integer response status 404 + +GET Alarms Task with filter "id" + Log Query NFV-MANO The GET method queries information about multiple alarms with filters "id". + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?id=${alarmId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "id" + Should Be Equal As Strings ${response['body']['id']} ${alarmId} + +GET Alarms Task with filter "managedObjectId" + Log Query VNF The GET method queries information about multiple alarms with filters "vnfcInstanceIds". + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?vnfcInstanceIds=${managedObjectId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "managedObjectId" + Should Be Equal As Strings ${response['body']['managedObjectId']} ${managedObjectId} + diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index eee387083..39094b638 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -18,6 +18,9 @@ ${CONTENT_TYPE_PATCH} application/merge-patch+json ${alarm_filter} managedObjectId ${managedObjectId} 007c111c-38a1-42c0-a666-7475ecb1567c +${eventType} COMMUNICATIONS_ALARM +${probableCause} "" +${perceivedSeverity} CRITICAL ${invalid_alarm_filter} badFilter ${alarmId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d -- GitLab From 075941142cd3a102ea8e91e8fb8771b67f6df2ee Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 21 Aug 2020 10:31:55 +0500 Subject: [PATCH 015/116] change TD ids --- SOL009/NFVMANOFaultManagement-API/Alarms.robot | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index bffdf4308..79bbeff5d 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -87,7 +87,7 @@ Get information about multiple alarms - Bad Request Response too Big Check HTTP Response Body Json Schema Is ProblemDetails GET information about alarms with attribute-based filter "id" - [Documentation] Test ID: 8.3.3.1.14 + [Documentation] Test ID: 8.3.3.1.7 ... Test title: GET information about alarms with attribute-based filter "id" ... Test objective: The objective is to retrieve information about the alarm list with alarm filter "id" ... Pre-conditions: @@ -101,7 +101,7 @@ GET information about alarms with attribute-based filter "id" Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "id" GET information about multiple alarms with attribute-based filter "managedObjectId" - [Documentation] Test ID: 8.3.3.1.15 + [Documentation] Test ID: 8.3.3.1.8 ... Test title: GET information about multiple alarms with attribute-based filter "managedObjectId" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "managedObjectId" ... Pre-conditions: @@ -115,7 +115,7 @@ GET information about multiple alarms with attribute-based filter "managedObject Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "managedObjectId" GET information about multiple alarms with attribute-based filter "eventType" - [Documentation] Test ID: 8.3.3.1.17 + [Documentation] Test ID: 8.3.3.1.9 ... Test title: GET information about multiple alarms with attribute-based filter "eventType" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "eventType" ... Pre-conditions: @@ -129,7 +129,7 @@ GET information about multiple alarms with attribute-based filter "eventType" Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "eventType" GET information about multiple alarms with attribute-based filter "perceivedSeverity" - [Documentation] Test ID: 8.3.3.1.18 + [Documentation] Test ID: 8.3.3.1.10 ... Test title: GET information about multiple alarms with attribute-based filter "perceivedSeverity" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "perceivedSeverity" ... Pre-conditions: @@ -143,7 +143,7 @@ GET information about multiple alarms with attribute-based filter "perceivedSeve Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "perceivedSeverity" GET information about multiple alarms with attribute-based filter "probableCause" - [Documentation] Test ID: 8.3.3.1.19 + [Documentation] Test ID: 8.3.3.1.11 ... Test title: GET information about multiple alarms with attribute-based filter "probableCause" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "probableCause" ... Pre-conditions: @@ -156,10 +156,8 @@ GET information about multiple alarms with attribute-based filter "probableCause Check HTTP Response Body Json Schema Is Alarms Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "probableCause" - - PUT Alarms - Method not implemented - [Documentation] Test ID: 8.3.3.1.7 + [Documentation] Test ID: 8.3.3.1.12 ... Test title: PUT Alarms - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none @@ -171,7 +169,7 @@ PUT Alarms - Method not implemented Check HTTP Response Status Code Is 405 PATCH Alarms - Method not implemented - [Documentation] Test ID: 8.3.3.1.8 + [Documentation] Test ID: 8.3.3.1.13 ... Test title: PATCH Alarms - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none @@ -183,7 +181,7 @@ PATCH Alarms - Method not implemented Check HTTP Response Status Code Is 405 DELETE Alarms - Method not implemented - [Documentation] Test ID: 8.3.3.1.9 + [Documentation] Test ID: 8.3.3.1.14 ... Test title: POST Alarms - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed for fault management alarms on NFV-MANO ... Pre-conditions: none -- GitLab From d73c2ad9072c6ff2405755afec8e51db4d56cfd9 Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 21 Aug 2020 10:43:37 +0500 Subject: [PATCH 016/116] added test case for subscription attribute-based filtering --- .../FaultManagement-APIKeyword.robot | 108 +++++++++++++++++- .../Subscriptions.robot | 78 ++++++++++++- .../environment/variables.txt | 2 + 3 files changed, 183 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index 7560790ba..97fdd3b16 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -345,14 +345,118 @@ Check PostCondition HTTP Response Body alarms Matches the requested attribute-ba Should Be Equal As Strings ${response['body']['id']} ${alarmId} GET Alarms Task with filter "managedObjectId" - Log Query VNF The GET method queries information about multiple alarms with filters "vnfcInstanceIds". + Log Query NFV-MANO The GET method queries information about multiple alarms with filters "NFV-MANOcInstanceIds". Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response - Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?vnfcInstanceIds=${managedObjectId} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?NFV-MANOcInstanceIds=${managedObjectId} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "managedObjectId" Should Be Equal As Strings ${response['body']['managedObjectId']} ${managedObjectId} +GET Alarms Task with filter "eventType" + Log Query NFV-MANO The GET method queries information about multiple alarms with filters "eventType". + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?eventType=${eventType} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "eventType" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['eventType']} ${eventType} + END + +GET Alarms Task with filter "perceivedSeverity" + Log Query NFV-MANO The GET method queries information about multiple alarms with filters "perceivedSeverity". + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?perceivedSeverity=${perceivedSeverity} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "perceivedSeverity" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['perceivedSeverity']} ${perceivedSeverity} + END + +GET Alarms Task with filter "probableCause" + Log Query NFV-MANO The GET method queries information about multiple alarms with filters "probableCause". + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms?probableCause=${probableCause} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "probableCause" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['probableCause']} ${probableCause} + END + +Get subscriptions with filter "id" + Log Get the list of active subscriptions using a filter "id" + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?id=${subscription_id} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body Subscription Matches the requested attribute-based filter "id" + Should Be Equal As Strings ${response['body']['id']} ${subscription_id} + +Get subscriptions with filter "filter_notificationTypes" + Log Get the list of active subscriptions using a filter "filter.notificationTypes" + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.notificationTypes=${notification_type} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_notificationTypes" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['filter']['notificationTypes']} ${notification_type} + END + +Get subscriptions with filter "filter_perceivedSeverities" + Log Get the list of active subscriptions using a filter "filter.perceivedSeverities" + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.perceivedSeverities=${perceivedSeverity} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_perceivedSeverities" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['filter']['perceivedSeverities']} ${perceivedSeverity} + END + +Get subscriptions with filter "filter_eventTypes" + Log Get the list of active subscriptions using a filter "filter.eventTypes" + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.eventTypes=${eventType} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_eventTypes" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['filter']['eventTypes']} ${eventType} + END + +Get subscriptions with filter "filter_probableCauses" + Log Get the list of active subscriptions using a filter "filter.probableCauses" + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.probableCauses=${probableCause} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_probableCauses" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['filter']['probableCauses']} ${probableCause} + END diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot index 3867997d9..9983932ed 100644 --- a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -119,8 +119,80 @@ Get information about multiple alarms - Bad Request Response too Big Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -PUT subscriptions - Method not implemented +GET Subscription with attribute-based filter "id" [Documentation] Test ID: 8.3.3.3.9 + ... Test title: GET Subscription with attribute-based filter "id" + ... Test objective: The objective is to retrieve the list of active subscriptions with filter "id" + ... Pre-conditions: + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get subscriptions with filter "id" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscription + Check PostCondition HTTP Response Body Subscription Matches the requested attribute-based filter "id" + + +Get subscriptions with filter "filter.notificationTypes" + [Documentation] Test ID: 8.3.3.3.10 + ... Test title: GET Subscription with attribute-based filter "filter.notificationTypes" + ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.notificationTypes" + ... Pre-conditions: + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get subscriptions with filter "filter_notificationTypes" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscriptions + Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_notificationTypes" + +Get subscriptions with filter "filter.perceivedSeverities" + [Documentation] Test ID: 8.3.3.3.11 + ... Test title: GET Subscription with attribute-based filter "filter.perceivedSeverities" + ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.perceivedSeverities" + ... Pre-conditions: + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get subscriptions with filter "filter_perceivedSeverities" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscriptions + Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_perceivedSeverities" + +Get subscriptions with filter "filter.eventTypes" + [Documentation] Test ID: 8.3.3.3.12 + ... Test title: GET Subscription with attribute-based filter "filter.eventTypes" + ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.eventTypes" + ... Pre-conditions: + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get subscriptions with filter "filter_eventTypes" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscriptions + Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_eventTypes" + +Get subscriptions with filter "filter.probableCauses" + [Documentation] Test ID: 8.3.3.3.13 + ... Test title: GET Subscription with attribute-based filter "filter.probableCauses" + ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.probableCauses" + ... Pre-conditions: + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get subscriptions with filter "filter_probableCauses" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscriptions + Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_probableCauses" + + +PUT subscriptions - Method not implemented + [Documentation] Test ID: 8.3.3.3.14 ... Test title:PUT subscriptions - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to for fault management subscriptions on VNF ... Pre-conditions: none @@ -132,7 +204,7 @@ PUT subscriptions - Method not implemented Check HTTP Response Status Code Is 405 PATCH subscriptions - Method not implemented - [Documentation] Test ID: 8.3.3.3.10 + [Documentation] Test ID: 8.3.3.3.15 ... Test title: PATCH subscriptions - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to for fault management subscriptions on VNF ... Pre-conditions: none @@ -144,7 +216,7 @@ PATCH subscriptions - Method not implemented Check HTTP Response Status Code Is 405 DELETE subscriptions - Method not implemented - [Documentation] Test ID: 8.3.3.3.11 + [Documentation] Test ID: 8.3.3.3.16 ... Test title: DELETE subscriptions - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to for fault management subscriptions on VNF ... Pre-conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index 39094b638..c58650bcc 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -33,6 +33,8 @@ ${sub_filter} filter ${sub_filter_invalid} filter_invalid ${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f +${faultyResourceType} +${notification_type} AlarmNotification ${callback_uri} http://localhost ${callback_port} 9091 -- GitLab From 420a774638d1556351069fe95cbf2b9bd2d8e12f Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 10 Sep 2020 18:21:27 +0200 Subject: [PATCH 017/116] added authentication tests + fixed some keywords --- .../NFVMANOFaultManagement-API/Alarms.robot | 92 +++++++++++++------ .../FaultManagement-APIKeyword.robot | 43 +++++++-- .../Subscriptions.robot | 22 ++--- .../environment/variables.txt | 4 +- 4 files changed, 113 insertions(+), 48 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index 79bbeff5d..1eedfd8b9 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -23,7 +23,7 @@ POST Alarms - Method not implemented Get information about multiple alarms [Documentation] Test ID: 8.3.3.1.2 ... Test title: Get information about multiple alarms - ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema and content validation of the returned alarms data structure + ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema of the returned alarms data structure ... Pre-conditions: none ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -36,7 +36,7 @@ Get information about multiple alarms Get information about multiple alarms with filter [Documentation] Test ID: 8.3.3.1.3 ... Test title: Get information about multiple alarms with filter - ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema and content validation of the returned alarms data structure, and verify that the retrieved information matches the issued attribute-based filters + ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema validation of the returned alarms data structure, and verify that the retrieved information matches the issued attribute-based filters ... Pre-conditions: none ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -46,10 +46,10 @@ Get information about multiple alarms with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Alarms -Get information about multiple alarms Bad Request Invalid attribute-based filtering parameters +Get information about multiple alarms with invalid attribute-based filtering parameters [Documentation] Test ID: 8.3.3.1.4 - ... Test title: Get information about multiple alarms Bad Request Invalid attribute-based filtering parameters - ... Test objective: The objective is to try to retrieve information about the alarm list with invalid filters and perform a JSON schema and content validation of the returned problem details data structure + ... Test title: Get information about multiple alarms with invalid attribute-based filtering parameters + ... Test objective: The objective is to try to retrieve information about the alarm list with invalid filters and perform a JSON schema validation of the returned problem details data structure ... Pre-conditions: none ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -71,12 +71,12 @@ Get information about multiple alarms as a Paged Response ... Post-Conditions: none GET Fault Management Alarms Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link Get information about multiple alarms - Bad Request Response too Big [Documentation] Test ID: 8.3.3.1.6 ... Test title: Get information about multiple alarms - Bad Request Response too Big - ... Test objective: The objective is to try to retrieve information about the alarm list because response is too big and perform a JSON schema and content validation of the returned problem details data structure + ... Test objective: The objective is to try to retrieve information about the alarm list because response is too big and perform a JSON schema validation of the returned problem details data structure ... Pre-conditions: none ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -90,12 +90,12 @@ GET information about alarms with attribute-based filter "id" [Documentation] Test ID: 8.3.3.1.7 ... Test title: GET information about alarms with attribute-based filter "id" ... Test objective: The objective is to retrieve information about the alarm list with alarm filter "id" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: - GET Alarms Task with filter "id" + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms with filter "id" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Alarm Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "id" @@ -107,9 +107,9 @@ GET information about multiple alarms with attribute-based filter "managedObject ... Pre-conditions: ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: - GET Alarms Task with filter "managedObjectId" + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms with filter "managedObjectId" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Alarms Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "managedObjectId" @@ -121,9 +121,9 @@ GET information about multiple alarms with attribute-based filter "eventType" ... Pre-conditions: ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: - GET Alarms Task with filter "eventType" + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms with filter "eventType" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Alarms Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "eventType" @@ -132,12 +132,12 @@ GET information about multiple alarms with attribute-based filter "perceivedSeve [Documentation] Test ID: 8.3.3.1.10 ... Test title: GET information about multiple alarms with attribute-based filter "perceivedSeverity" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "perceivedSeverity" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: - GET Alarms Task with filter "perceivedSeverity" + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms with filter "perceivedSeverity" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Alarms Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "perceivedSeverity" @@ -146,18 +146,54 @@ GET information about multiple alarms with attribute-based filter "probableCause [Documentation] Test ID: 8.3.3.1.11 ... Test title: GET information about multiple alarms with attribute-based filter "probableCause" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "probableCause" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: - GET Alarms Task with filter "probableCause" + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Alarms with filter "probableCause" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Alarms Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "probableCause" -PUT Alarms - Method not implemented +Get information about multiple alarms with malformed authorization token [Documentation] Test ID: 8.3.3.1.12 + ... Test title: Get information about multiple alarms with malformed authorization token + ... Test objective: The objective is to test that the retrieval of information about the alarm list fails when using malformed authorization token + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. + ... Post-Conditions: none + GET Fault Management Alarms with malformed authorization token + Check HTTP Response Status Code Is 400 + +Get information about multiple alarms without authorization token + [Documentation] Test ID: 8.3.3.1.13 + ... Test title: Get information about multiple alarms without authorization token + ... Test objective: The objective is to test that the retrieval of information about the alarm list fails when omitting the authorization token + ... Pre-conditions: none + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. + ... Post-Conditions: none + GET Fault Management Alarms without authorization token + Check HTTP Response Status Code Is 401 + +GET information about multiple alarms with expired or revoked authorization token + [Documentation] Test ID: 8.3.3.1.14 + ... 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 about the alarm list fails when using expired or revoked authorization token + ... Pre-conditions: One or more Network Service Descriptors are onboarded in the NFVO + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. + ... Post-Conditions: none + GET Fault Management Alarms with expired or revoked authorization token + Check HTTP Response Status Code Is 401 + +PUT Alarms - Method not implemented + [Documentation] Test ID: 8.3.3.1.15 ... Test title: PUT Alarms - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none @@ -169,7 +205,7 @@ PUT Alarms - Method not implemented Check HTTP Response Status Code Is 405 PATCH Alarms - Method not implemented - [Documentation] Test ID: 8.3.3.1.13 + [Documentation] Test ID: 8.3.3.1.16 ... Test title: PATCH Alarms - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none @@ -181,7 +217,7 @@ PATCH Alarms - Method not implemented Check HTTP Response Status Code Is 405 DELETE Alarms - Method not implemented - [Documentation] Test ID: 8.3.3.1.14 + [Documentation] Test ID: 8.3.3.1.17 ... Test title: POST Alarms - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed for fault management alarms on NFV-MANO ... Pre-conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index 97fdd3b16..cc846559f 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -60,7 +60,7 @@ GET Fault Management Alarms With Invalid Filters ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Check LINK in Header +Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} @@ -178,7 +178,7 @@ POST Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Check Operation Occurrence Id +Check HTTP Response Header Contains Location ${opOccId}= Get Value From Json ${response['headers']} $..Location Should Not Be Empty ${opOccId} @@ -332,7 +332,7 @@ Check Individual Subscription deleted Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} Integer response status 404 -GET Alarms Task with filter "id" +GET Fault Management Alarms with filter "id" Log Query NFV-MANO The GET method queries information about multiple alarms with filters "id". Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -344,7 +344,7 @@ GET Alarms Task with filter "id" Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "id" Should Be Equal As Strings ${response['body']['id']} ${alarmId} -GET Alarms Task with filter "managedObjectId" +GET Fault Management Alarms with filter "managedObjectId" Log Query NFV-MANO The GET method queries information about multiple alarms with filters "NFV-MANOcInstanceIds". Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -356,7 +356,7 @@ GET Alarms Task with filter "managedObjectId" Check PostCondition HTTP Response Body alarms Matches the requested attribute-based filter "managedObjectId" Should Be Equal As Strings ${response['body']['managedObjectId']} ${managedObjectId} -GET Alarms Task with filter "eventType" +GET Fault Management Alarms with filter "eventType" Log Query NFV-MANO The GET method queries information about multiple alarms with filters "eventType". Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -370,7 +370,7 @@ Check PostCondition HTTP Response Body alarms Matches the requested attribute-ba Should Be Equal As Strings ${item['eventType']} ${eventType} END -GET Alarms Task with filter "perceivedSeverity" +GET Fault Management Alarms with filter "perceivedSeverity" Log Query NFV-MANO The GET method queries information about multiple alarms with filters "perceivedSeverity". Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -384,7 +384,7 @@ Check PostCondition HTTP Response Body alarms Matches the requested attribute-ba Should Be Equal As Strings ${item['perceivedSeverity']} ${perceivedSeverity} END -GET Alarms Task with filter "probableCause" +GET Fault Management Alarms with filter "probableCause" Log Query NFV-MANO The GET method queries information about multiple alarms with filters "probableCause". Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -460,3 +460,32 @@ Check PostCondition HTTP Response Body Subscriptions Matches the requested attri :FOR ${item} IN @{response['body']} Should Be Equal As Strings ${item['filter']['probableCauses']} ${probableCause} END + +GET Fault Management Alarms with malformed authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Fault Management Alarms without authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries omitting token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Fault Management Alarms with expired or revoked authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/alarms + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot index 9983932ed..caec27420 100644 --- a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -11,7 +11,7 @@ Library JSONSchemaLibrary schemas/ Create a new Fault Management alarm subscription [Documentation] Test ID:8.3.3.3.1 ... Test title: Create a new fault management alarm subscription - ... Test objective: The objective is to create a new fault management alarm subscription and perform a JSON schema and content validation of the returned fault management alarms subscription data structure + ... Test objective: The objective is to create a new fault management alarm subscription and perform a JSON schema validation of the returned fault management alarms subscription data structure ... Pre-conditions: No subscription with the same filter and callbackUri exists ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -19,14 +19,14 @@ Create a new Fault Management alarm subscription ... Post-Conditions: subscription is created POST Subscription Check HTTP Response Status Code Is 201 - Check Operation Occurrence Id Check HTTP Response Body Json Schema Is FmSubscription + Check HTTP Response Header Contains Location Check PostCondition Subscription is created Create a new alarm subscription - DUPLICATION [Documentation] Test ID: 8.3.3.3.2 ... Test title: Create a new alarm subscription - DUPLICATION - ... Test objective: The objective is to create a new subscription with the NFV-MANO allowing duplication and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Test objective: The objective is to create a new subscription with the NFV-MANO allowing duplication and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: subscription with the same filter and callbackUri exists ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -34,14 +34,14 @@ Create a new alarm subscription - DUPLICATION ... Post-Conditions: duplicated subscription is created POST Subscription Duplication permitted Check HTTP Response Status Code Is 201 - Check Operation Occurrence Id Check HTTP Response Body Json Schema Is FmSubscription + Check HTTP Response Header Contains Location Check Postcondition FaultManagement Subscription Is Set Create a new alarm subscription - NO DUPLICATION [Documentation] Test ID: 8.3.3.3.3 ... Test title: Create a new alarm subscription - NO DUPLICATION - ... Test objective: The objective is to create a new subscription with the NFV-MANO not allowing duplication and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Test objective: The objective is to create a new subscription with the NFV-MANO not allowing duplication and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: subscription with the same filter and callbackUri exists ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -49,14 +49,14 @@ Create a new alarm subscription - NO DUPLICATION ... Post-Conditions: duplicated subscription is not created POST Subscription Duplication not permitted Check HTTP Response Status Code Is 303 - Check Operation Occurrence Id Check HTTP Response Body Json Schema Is FmSubscription + Check HTTP Response Header Contains Location Check Postcondition Subscription Resource Returned in Location Header Is Available Retrieve a list of alarm subscriptions [Documentation] Test ID: 8.3.3.3.4 ... Test title: Retrieve a list of alarm subscriptions - ... Test objective: The objective is to retrieve the list of active subscriptions and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Test objective: The objective is to retrieve the list of active subscriptions and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: none ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -69,7 +69,7 @@ Retrieve a list of alarm subscriptions Retrieve a list of alarm subscriptions with filter [Documentation] Test ID: 8.3.3.3.5 ... Test title: Retrieve a list of alarm subscriptions with filter - ... Test objective: The objective is to retrieve the list of active subscriptions with filter and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Test objective: The objective is to retrieve the list of active subscriptions with filter and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: none ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -90,12 +90,12 @@ Get information about multiple alarms as a Paged Response ... Post-Conditions: none GET Subscriptions Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link GET subscriptions - Bad Request Invalid attribute-based filtering parameters [Documentation] Test ID: 8.3.3.3.7 ... Test title: GET subscriptions - Bad Request Invalid attribute-based filtering parameters - ... Test objective: The objective is to retrieve the list of active subscriptions with Invalid attribute-based filtering parameters and perform a JSON schema and content validation of the returned problem details data structure. + ... Test objective: The objective is to retrieve the list of active subscriptions with Invalid attribute-based filtering parameters and perform a JSON schema validation of the returned problem details data structure. ... Pre-conditions: none ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -109,7 +109,7 @@ GET subscriptions - Bad Request Invalid attribute-based filtering parameters Get information about multiple alarms - Bad Request Response too Big [Documentation] Test ID: 8.3.3.3.8 ... Test title: Get information about multiple alarms - Bad Request Response too Big - ... Test objective: The objective is to try to retrieve information about active list subscription to check that response is too big and perform a JSON schema and content validation of the returned problem details data structure + ... Test objective: The objective is to try to retrieve information about active list subscription to check that response is too big and perform a JSON schema validation of the returned problem details data structure ... Pre-conditions: none ... Reference: Clause clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index c58650bcc..fdb1ee9d3 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -7,8 +7,8 @@ ${CONTENT_TYPE} application/json ${ACCEPT} application/json ${ACCEPT_JSON} application/json ${AUTH_USAGE} 1 - -${WRONG_AUTHORIZATION} Bearer XXXXXWRONGXXXXX +${NEG_AUTHORIZATION} Bearer negativetoken +${BAD_AUTHORIZATION} Bear sometoken ${apiRoot} / ${apiName} nfvmanofm ${apiMajorVersion} v1 -- GitLab From 6ebbfeb35c816a9b429e1b00b059be60fd9a65e0 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 11:10:38 +0500 Subject: [PATCH 018/116] templating, minor bugs fix and new testcases added --- .../NFVMANOFaultManagement-API/Alarms.robot | 7 ++--- .../FaultManagement-APIKeyword.robot | 14 ++++++---- .../IndividualAlarm.robot | 28 +++++++++++++------ .../IndividualSubscription.robot | 18 ++++++++++-- .../Subscriptions.robot | 2 -- .../jsons/fmSubscriptionRequest.json | 6 ++-- 6 files changed, 49 insertions(+), 26 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index 1eedfd8b9..395a6c96c 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -59,7 +59,6 @@ Get information about multiple alarms with invalid attribute-based filtering par Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails - Get information about multiple alarms as a Paged Response [Documentation] Test ID: 8.3.3.1.5 ... Test title: Get information about multiple alarms as a Paged Response @@ -161,7 +160,7 @@ Get information about multiple alarms with malformed authorization token ... Test title: Get information about multiple alarms with malformed authorization token ... Test objective: The objective is to test that the retrieval of information about the alarm list fails when using malformed authorization token ... Pre-conditions: none - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -173,7 +172,7 @@ Get information about multiple alarms without authorization token ... Test title: Get information about multiple alarms without authorization token ... Test objective: The objective is to test that the retrieval of information about the alarm list fails when omitting the authorization token ... Pre-conditions: none - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -185,7 +184,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 about the alarm list fails when using expired or revoked authorization token ... Pre-conditions: One or more Network Service Descriptors are onboarded in the NFVO - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index cc846559f..d2f872b07 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -1,5 +1,6 @@ *** Settings *** -Resource environment/variables.txt +Library String +Resource environment/variables.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library JSONLibrary Library JSONSchemaLibrary schemas/ @@ -173,7 +174,8 @@ POST Subscription Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - ${body}= Get File jsons/fmSubscriptionRequest.json + ${template}= Get File jsons/fmSubscriptionRequest.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} @@ -196,7 +198,8 @@ POST Subscription Duplication permitted Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - ${body}= Get File jsons/fmSubscriptionRequest.json + ${template}= Get File jsons/fmSubscriptionRequest.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} @@ -209,14 +212,14 @@ Check Postcondition FaultManagement Subscription Is Set Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 200 - POST Subscription Duplication not permitted Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions Pass Execution If ${NFVMANO_DUPLICATION} == 1 NVFO 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/fmSubscriptionRequest.json + ${template}= Get File jsons/fmSubscriptionRequest.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} @@ -232,7 +235,6 @@ Check Postcondition Subscription Resource Returned in Location Header Is Availab ${result}= Output response body Validate Json FMSubscription.schema.json ${result} Log Validated FMSubscription schema - GET Subscriptions Log Get the list of active subscriptions diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot index 23e3d369e..3493df3dd 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -34,9 +34,21 @@ Get information about an fault management individual alarm GET Fault Management Individual Alarm Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is alarm + +Get information about an fault management individual alarm - Not Found + [Documentation] Test ID: 8.3.3.2.3 + ... Test title: Get information about an fault management individual alarm + ... Test objective: The objective is to test the retrieval of information about an individual alarm fails when the resource is not present. + ... Pre-conditions: none + ... Reference: clause 7.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Fault Management Individual Alarm + Check HTTP Response Status Code Is 404 PUT Alarm - Method not implemented - [Documentation] Test ID: 8.3.3.2.3 + [Documentation] Test ID: 8.3.3.2.4 ... Test title: PUT Alarm - Method not implemented ... Test objective: he objective is to test that PUT method is not allowed to for fault management individual alarm on NFV-MANO ... Pre-conditions: The related alarm exists @@ -48,9 +60,9 @@ PUT Alarm - Method not implemented Check HTTP Response Status Code Is 405 PATCH Fault Management Individual Alarm - [Documentation] Test ID: 8.3.3.2.4 + [Documentation] Test ID: 8.3.3.2.5 ... Test title: PATCH Fault Management Individual Alarm - ... Test objective: The objective is to Modify an individual alarm resource and perform a JSON schema and content validation of the returned alarm data structure + ... Test objective: The objective is to Modify an individual alarm resource, and perform a JSON schema validation of the returned alarm data structure. ... Pre-conditions: The related alarm exists ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -61,9 +73,9 @@ PATCH Fault Management Individual Alarm Check HTTP Response Body Json Schema Is AlarmModification Modify an individual alarm resource - Precondition failed - [Documentation] Test ID: 8.3.3.2.5 + [Documentation] Test ID: 8.3.3.2.6 ... Test title: Modify an individual alarm resource - Precondition failed - ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the alarm is already in the state that is requested to be set + ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the alarm is already in the state that is requested to be set, and perform a JSON schema validation of the returned data structure. ... Pre-conditions: The related alarm exists ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -75,9 +87,9 @@ Modify an individual alarm resource - Precondition failed Check Postcondition fault management individual alarm exists Modify an individual alarm resource - Conflict - [Documentation] Test ID: 8.3.3.2.6 + [Documentation] Test ID: 8.3.3.2.7 ... Test title: Modify an individual alarm resource - Conflict - ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the resource was modified by another entity + ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the resource was modified by another entity , and perform a JSON schema validation of the returned data structure. ... Pre-conditions: The related alarm exists ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -89,7 +101,7 @@ Modify an individual alarm resource - Conflict Check Postcondition fault management individual alarm exists DELETE Alarm - Method not implemented - [Documentation] Test ID: 8.3.3.2.7 + [Documentation] Test ID: 8.3.3.2.8 ... Test title: DELETE Alarm - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete fault management individual alarm on NFV-MANO. ... Pre-conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot index 9d9b91a64..21d22e06a 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -31,9 +31,21 @@ Get Information about an individual subscription GET Individual Subscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is FmSubscription + +Get Information about an individual subscription - Not Found + [Documentation] Test ID: 8.3.3.4.3 + ... Test title: Get Information about an individual subscription - Not Found + ... Test objective: The objective is to test the retrieval of individual subscription from NFV-MANO alarms fails when the resource is not present. + ... Pre-conditions: none + ... Reference: clause 7.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Individual Subscription + Check HTTP Response Status Code Is 404 PUT an individual subscription - Method not implemented - [Documentation] Test ID: 8.3.3.4.3 + [Documentation] Test ID: 8.3.3.4.4 ... Test title:PUT an individual subscription - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed for fault management individual subscription on VNF ... Pre-conditions: none @@ -45,7 +57,7 @@ PUT an individual subscription - Method not implemented Check HTTP Response Status Code Is 405 PATCH an individual subscription - Method not implemented - [Documentation] Test ID: 8.3.3.4.4 + [Documentation] Test ID: 8.3.3.4.5 ... Test title:PATCH an individual subscription - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed for fault management individual subscription on VNF ... Pre-conditions: none @@ -57,7 +69,7 @@ PATCH an individual subscription - Method not implemented Check HTTP Response Status Code Is 405 DELETE an individual subscription - [Documentation] Test ID: 8.3.3.4.5 + [Documentation] Test ID: 8.3.3.4.6 ... Test title:DELETE an individual subscription ... Test objective: The objective is to test that DELETE method removes individual subscription on VNF ... Pre-conditions: The Subsbcription already exists diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot index caec27420..7eee42b04 100644 --- a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -105,7 +105,6 @@ GET subscriptions - Bad Request Invalid attribute-based filtering parameters Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails - Get information about multiple alarms - Bad Request Response too Big [Documentation] Test ID: 8.3.3.3.8 ... Test title: Get information about multiple alarms - Bad Request Response too Big @@ -190,7 +189,6 @@ Get subscriptions with filter "filter.probableCauses" Check HTTP Response Body Json Schema Is FmSubscriptions Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_probableCauses" - PUT subscriptions - Method not implemented [Documentation] Test ID: 8.3.3.3.14 ... Test title:PUT subscriptions - Method not implemented diff --git a/SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json b/SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json index 8d91c2b81..0e741d682 100644 --- a/SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json +++ b/SOL009/NFVMANOFaultManagement-API/jsons/fmSubscriptionRequest.json @@ -1,3 +1,3 @@ -{ - "callbackUri": "http://127.0.0.1/subscribe" -} \ No newline at end of file +{{ + "callbackUri": "{callback_uri}{callback_endpoint}" +}} \ No newline at end of file -- GitLab From ea3981420461cf482d159662efeca64afc78881f Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 12:40:36 +0500 Subject: [PATCH 019/116] redundant post-conditions removed --- .../FaultManagement-APIKeyword.robot | 4 ---- SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot | 5 ++--- .../NFVMANOFaultManagement-API/IndividualSubscription.robot | 3 +-- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot index d2f872b07..a83c15dd4 100644 --- a/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL009/NFVMANOFaultManagement-API/FaultManagement-APIKeyword.robot @@ -292,10 +292,6 @@ POST Individual Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Check Postcondition subscription not created - GET Individual Subscription - Check HTTP Response Status Code Is 404 - GET Individual Subscription log Trying to get information about an individual subscription Set Headers {"Accept":"${ACCEPT}"} diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot index 3493df3dd..c1a4b258e 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -108,7 +108,6 @@ DELETE Alarm - Method not implemented ... Reference: clause 7.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The individual alarm still exists + ... Post-Conditions: none DELETE Fault Management Individual Alarm - Check HTTP Response Status Code Is 405 - Check Postcondition fault management individual alarm exists \ No newline at end of file + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot index 21d22e06a..116617884 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -14,10 +14,9 @@ Post Individual Subscription - Method not implemented ... Reference: clause 7.5.6.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: subscription is not created + ... Post-Conditions: none POST Individual Subscription Check HTTP Response Status Code Is 405 - Check Postcondition subscription not created Get Information about an individual subscription [Documentation] Test ID: 8.3.3.4.2 -- GitLab From aeb402e036ea492a9db3f6abe65ad2e57f89eee6 Mon Sep 17 00:00:00 2001 From: Sana Zulfiqar Date: Mon, 14 Sep 2020 10:54:17 +0200 Subject: [PATCH 020/116] minor changes in pre-conditions --- SOL009/NFVMANOFaultManagement-API/Alarms.robot | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index 395a6c96c..53ba9ed6e 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -103,7 +103,7 @@ GET information about multiple alarms with attribute-based filter "managedObject [Documentation] Test ID: 8.3.3.1.8 ... Test title: GET information about multiple alarms with attribute-based filter "managedObjectId" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "managedObjectId" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -117,7 +117,7 @@ GET information about multiple alarms with attribute-based filter "eventType" [Documentation] Test ID: 8.3.3.1.9 ... Test title: GET information about multiple alarms with attribute-based filter "eventType" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "eventType" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -165,7 +165,7 @@ Get information about multiple alarms with malformed authorization token ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none GET Fault Management Alarms with malformed authorization token - Check HTTP Response Status Code Is 400 + Check HTTP Response Status Code Is 401 Get information about multiple alarms without authorization token [Documentation] Test ID: 8.3.3.1.13 @@ -226,5 +226,4 @@ DELETE Alarms - Method not implemented ... Post-Conditions: none DELETE Fault management Alarms Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO fault management alarms Exists \ No newline at end of file -- GitLab From 45bf953fd98b13edc7dce58515f7475037691cd6 Mon Sep 17 00:00:00 2001 From: Sana Zulfiqar Date: Mon, 14 Sep 2020 10:59:51 +0200 Subject: [PATCH 021/116] pre-condition updated --- SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot index c1a4b258e..d16f9b4b4 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -51,7 +51,7 @@ PUT Alarm - Method not implemented [Documentation] Test ID: 8.3.3.2.4 ... Test title: PUT Alarm - Method not implemented ... Test objective: he objective is to test that PUT method is not allowed to for fault management individual alarm on NFV-MANO - ... Pre-conditions: The related alarm exists + ... Pre-conditions: none ... Reference: clause 7.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none -- GitLab From 163566d859fcc2c150a1e37015045b9c75d98d7b Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 22 Oct 2020 18:16:50 +0200 Subject: [PATCH 022/116] updated references --- .../NFVMANOFaultManagement-API/Alarms.robot | 34 +++++++++---------- .../ApiVersion.robot | 20 +++++------ .../IndividualAlarm.robot | 16 ++++----- .../IndividualSubscription.robot | 12 +++---- .../NotificationEndpoint.robot | 6 ++-- .../Subscriptions.robot | 32 ++++++++--------- 6 files changed, 60 insertions(+), 60 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index 53ba9ed6e..c31d850cb 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -13,7 +13,7 @@ POST Alarms - Method not implemented ... Test title: POST Alarms - Method not implemented ... Test objective: The objective is to test that Post method is not allowed to create fault management alarms on NFV-MANO ... Pre-conditions: none - ... Reference: clause 7.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.3.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ Get information about multiple alarms ... Test title: Get information about multiple alarms ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema of the returned alarms data structure ... Pre-conditions: none - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ Get information about multiple alarms with filter ... Test title: Get information about multiple alarms with filter ... Test objective: The objective is to retrieve information about the alarm list and perform a JSON schema validation of the returned alarms data structure, and verify that the retrieved information matches the issued attribute-based filters ... Pre-conditions: none - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,7 @@ Get information about multiple alarms with invalid attribute-based filtering par ... Test title: Get information about multiple alarms with invalid attribute-based filtering parameters ... Test objective: The objective is to try to retrieve information about the alarm list with invalid filters and perform a JSON schema validation of the returned problem details data structure ... Pre-conditions: none - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -64,7 +64,7 @@ Get information about multiple alarms as a Paged Response ... Test title: Get information about multiple alarms as a Paged Response ... Test objective: The objective is to retrieve information about the alarm list as a Paged Response. ... Pre-conditions: none - ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ Get information about multiple alarms - Bad Request Response too Big ... Test title: Get information about multiple alarms - Bad Request Response too Big ... Test objective: The objective is to try to retrieve information about the alarm list because response is too big and perform a JSON schema validation of the returned problem details data structure ... Pre-conditions: none - ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ GET information about alarms with attribute-based filter "id" ... Test title: GET information about alarms with attribute-based filter "id" ... Test objective: The objective is to retrieve information about the alarm list with alarm filter "id" ... Pre-conditions: none - ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -104,7 +104,7 @@ GET information about multiple alarms with attribute-based filter "managedObject ... Test title: GET information about multiple alarms with attribute-based filter "managedObjectId" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "managedObjectId" ... Pre-conditions: none - ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -118,7 +118,7 @@ GET information about multiple alarms with attribute-based filter "eventType" ... Test title: GET information about multiple alarms with attribute-based filter "eventType" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "eventType" ... Pre-conditions: none - ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -132,7 +132,7 @@ GET information about multiple alarms with attribute-based filter "perceivedSeve ... Test title: GET information about multiple alarms with attribute-based filter "perceivedSeverity" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "perceivedSeverity" ... Pre-conditions: none - ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -146,7 +146,7 @@ GET information about multiple alarms with attribute-based filter "probableCause ... Test title: GET information about multiple alarms with attribute-based filter "probableCause" ... Test objective: The objective is to retrieve information about the alarm list with attribute filter "probableCause" ... Pre-conditions: none - ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -160,7 +160,7 @@ Get information about multiple alarms with malformed authorization token ... Test title: Get information about multiple alarms with malformed authorization token ... Test objective: The objective is to test that the retrieval of information about the alarm list fails when using malformed authorization token ... Pre-conditions: none - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -172,7 +172,7 @@ Get information about multiple alarms without authorization token ... Test title: Get information about multiple alarms without authorization token ... Test objective: The objective is to test that the retrieval of information about the alarm list fails when omitting the authorization token ... Pre-conditions: none - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -184,7 +184,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 about the alarm list fails when using expired or revoked authorization token ... Pre-conditions: One or more Network Service Descriptors are onboarded in the NFVO - ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -196,7 +196,7 @@ PUT Alarms - Method not implemented ... Test title: PUT Alarms - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none - ... Reference: clause 7.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.3.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -208,7 +208,7 @@ PATCH Alarms - Method not implemented ... Test title: PATCH Alarms - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify fault management alarms on NFV-MANO. ... Pre-conditions: none - ... Reference: clause 7.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.3.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -220,7 +220,7 @@ DELETE Alarms - Method not implemented ... Test title: POST Alarms - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed for fault management alarms on NFV-MANO ... Pre-conditions: none - ... Reference: clause 7.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.3.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot b/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot index a02570f36..0dde1341d 100644 --- a/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot +++ b/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot @@ -11,7 +11,7 @@ POST API Version - Method not implemented ... Test title: POST API version - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ GET API Version ... Test title: GET API Version ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ PUT API Version - Method not implemented ... Test title: PUT API Version - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PATCH API Version - Method not implemented ... Test title: PATCH API Version - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ DELETE API Version - Method not implemented ... Test title: DELETE API Version - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -72,7 +72,7 @@ POST API Version with apiMajorVerion - Method not implemented ... Test title: POST API version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -84,7 +84,7 @@ GET API Version with apiMajorVerion ... Test title: GET API Version with apiMajorVerion ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -97,7 +97,7 @@ PUT API Version with apiMajorVerion - Method not implemented ... Test title: PUT API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -109,7 +109,7 @@ PATCH API Version with apiMajorVerion - Method not implemented ... Test title: PATCH API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -121,7 +121,7 @@ DELETE API Version with apiMajorVerion - Method not implemented ... Test title: DELETE API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot index d16f9b4b4..49d8d806e 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -15,7 +15,7 @@ POST Alarm - Method not implemented ... Test title: POST Alarm - Method not implemented ... Test objective: The objective is to test that Post method is not allowed to create fault management individual alarm on NFV-MANO ... Pre-conditions: none - ... Reference: clause 7.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ Get information about an fault management individual alarm ... Test title: Get information about an fault management individual alarm ... Test objective: The objective is to retrieve information about an individual alarm and perform a JSON schema and content validation of the returned alarm data structure ... Pre-conditions: The related alarm exists - ... Reference: clause 7.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ Get information about an fault management individual alarm - Not Found ... Test title: Get information about an fault management individual alarm ... Test objective: The objective is to test the retrieval of information about an individual alarm fails when the resource is not present. ... Pre-conditions: none - ... Reference: clause 7.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -52,7 +52,7 @@ PUT Alarm - Method not implemented ... Test title: PUT Alarm - Method not implemented ... Test objective: he objective is to test that PUT method is not allowed to for fault management individual alarm on NFV-MANO ... Pre-conditions: none - ... Reference: clause 7.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -64,7 +64,7 @@ PATCH Fault Management Individual Alarm ... Test title: PATCH Fault Management Individual Alarm ... Test objective: The objective is to Modify an individual alarm resource, and perform a JSON schema validation of the returned alarm data structure. ... Pre-conditions: The related alarm exists - ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: Alarm is modified. @@ -77,7 +77,7 @@ Modify an individual alarm resource - Precondition failed ... Test title: Modify an individual alarm resource - Precondition failed ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the alarm is already in the state that is requested to be set, and perform a JSON schema validation of the returned data structure. ... Pre-conditions: The related alarm exists - ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: Alarm is not modified. @@ -91,7 +91,7 @@ Modify an individual alarm resource - Conflict ... Test title: Modify an individual alarm resource - Conflict ... Test objective: The objective is to test that an individual alarm resource cannot be modified if the resource was modified by another entity , and perform a JSON schema validation of the returned data structure. ... Pre-conditions: The related alarm exists - ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: Alarm is not modified. @@ -105,7 +105,7 @@ DELETE Alarm - Method not implemented ... Test title: DELETE Alarm - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete fault management individual alarm on NFV-MANO. ... Pre-conditions: none - ... Reference: clause 7.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.4.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot index 116617884..b4022daf4 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -11,7 +11,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 for fault management subscription on NFV-MANO ... Pre-conditions: none - ... Reference: clause 7.5.6.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.6.3.1 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ Get Information about an individual subscription ... Test title: Get Information about an individual subscription ... Test objective: The objective is to read an individual subscription from NFV-MANO alarms subscribed by the client and perform a JSON schema and content validation of the returned fault management individual subscription data structure ... Pre-conditions: The subscription with the given id exists - ... Reference: clause 7.5.6.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.6.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ Get Information about an individual subscription - Not Found ... Test title: Get Information about an individual subscription - Not Found ... Test objective: The objective is to test the retrieval of individual subscription from NFV-MANO alarms fails when the resource is not present. ... Pre-conditions: none - ... Reference: clause 7.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.6.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PUT an individual subscription - Method not implemented ... Test title:PUT an individual subscription - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed for fault management individual subscription on VNF ... Pre-conditions: none - ... Reference: clause 7.5.6.3.3 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.6.3.3 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ PATCH an individual subscription - Method not implemented ... Test title:PATCH an individual subscription - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed for fault management individual subscription on VNF ... Pre-conditions: none - ... Reference: clause 7.5.6.3.4 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.6.3.4 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -72,7 +72,7 @@ DELETE an individual subscription ... Test title:DELETE an individual subscription ... Test objective: The objective is to test that DELETE method removes individual subscription on VNF ... Pre-conditions: The Subsbcription already exists - ... Reference: clause 7.5.6.3.5 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.6.3.5 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: subscription is not deleted diff --git a/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot b/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot index ed61029e8..47640fb7c 100644 --- a/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot +++ b/SOL009/NFVMANOFaultManagement-API/NotificationEndpoint.robot @@ -14,7 +14,7 @@ NFV-MANO Fault Alarm Notification ... Test title: NFV-MANO Fault Alarm Notification ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Notification when a resource within an NFV-MANO instance fails, 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 NFV-MANO instance is instantiated, and a subscription for fault alarm notifications is available. - ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ NFV-MANO Fault Alarm Cleared Notification ... Test title: NFV-MANO Fault Alarm Cleared Notification ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm Cleared Notification when a faulty resource within an NFV-MANO instance is cleared, 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 NFV-MANO instance is instantiated, a virtualised resource is in faulty state, and a subscription for fault alarm cleared notifications is available. - ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ NFV-MANO Fault Alarm List Rebuilt Notification ... Test title: NFV-MANO Fault Alarm List Rebuilt Notification ... Test objective: The objective is to test the dispatch of NFV-MANO Fault Alarm List Rebuilt Notification when the NFV-MANO decides to rebuild the list of its NFV-MANO alarms, e.g. due to a corruption in the alarm storage, 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 NFV-MANO instance is instantiated, one or more virtualised resource are in faulty state, and a subscription for fault alarm list rebuilt notifications is available. - ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot index 7eee42b04..cfa5851cc 100644 --- a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -13,7 +13,7 @@ Create a new Fault Management alarm subscription ... Test title: Create a new fault management alarm subscription ... Test objective: The objective is to create a new fault management alarm subscription and perform a JSON schema validation of the returned fault management alarms subscription data structure ... Pre-conditions: No subscription with the same filter and callbackUri exists - ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: subscription is created @@ -28,7 +28,7 @@ Create a new alarm subscription - DUPLICATION ... Test title: Create a new alarm subscription - DUPLICATION ... Test objective: The objective is to create a new subscription with the NFV-MANO allowing duplication and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: subscription with the same filter and callbackUri exists - ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: the NFV-MANO allows creating a subscription resource if another subscription resource with the same filter and callbackUri already exists ... Post-Conditions: duplicated subscription is created @@ -43,7 +43,7 @@ Create a new alarm subscription - NO DUPLICATION ... Test title: Create a new alarm subscription - NO DUPLICATION ... Test objective: The objective is to create a new subscription with the NFV-MANO not allowing duplication and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: subscription with the same filter and callbackUri exists - ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: the NFV-MANO decides to not create a duplicate subscription resource ... Post-Conditions: duplicated subscription is not created @@ -58,7 +58,7 @@ Retrieve a list of alarm subscriptions ... Test title: Retrieve a list of alarm subscriptions ... Test objective: The objective is to retrieve the list of active subscriptions and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: none - ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: noe @@ -71,7 +71,7 @@ Retrieve a list of alarm subscriptions with filter ... Test title: Retrieve a list of alarm subscriptions with filter ... Test objective: The objective is to retrieve the list of active subscriptions with filter and perform a JSON schema validation of the returned fault management alarms subscription data structure. ... Pre-conditions: none - ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -84,7 +84,7 @@ Get information about multiple alarms as a Paged Response ... Test title: Get information about multiple alarms as a Paged Response ... Test objective: The objective is to retrieve information about active list subscriptions as a Paged Response ... Pre-conditions: none - ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -97,7 +97,7 @@ GET subscriptions - Bad Request Invalid attribute-based filtering parameters ... Test title: GET subscriptions - Bad Request Invalid attribute-based filtering parameters ... Test objective: The objective is to retrieve the list of active subscriptions with Invalid attribute-based filtering parameters and perform a JSON schema validation of the returned problem details data structure. ... Pre-conditions: none - ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -110,7 +110,7 @@ Get information about multiple alarms - Bad Request Response too Big ... Test title: Get information about multiple alarms - Bad Request Response too Big ... Test objective: The objective is to try to retrieve information about active list subscription to check that response is too big and perform a JSON schema validation of the returned problem details data structure ... Pre-conditions: none - ... Reference: Clause clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -123,7 +123,7 @@ GET Subscription with attribute-based filter "id" ... Test title: GET Subscription with attribute-based filter "id" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "id" ... Pre-conditions: - ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: @@ -138,7 +138,7 @@ Get subscriptions with filter "filter.notificationTypes" ... Test title: GET Subscription with attribute-based filter "filter.notificationTypes" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.notificationTypes" ... Pre-conditions: - ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: @@ -152,7 +152,7 @@ Get subscriptions with filter "filter.perceivedSeverities" ... Test title: GET Subscription with attribute-based filter "filter.perceivedSeverities" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.perceivedSeverities" ... Pre-conditions: - ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: @@ -166,7 +166,7 @@ Get subscriptions with filter "filter.eventTypes" ... Test title: GET Subscription with attribute-based filter "filter.eventTypes" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.eventTypes" ... Pre-conditions: - ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: @@ -180,7 +180,7 @@ Get subscriptions with filter "filter.probableCauses" ... Test title: GET Subscription with attribute-based filter "filter.probableCauses" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.probableCauses" ... Pre-conditions: - ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: @@ -194,7 +194,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 for fault management subscriptions on VNF ... Pre-conditions: none - ... RReference: clause 7.5.5.3.3 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... RReference: clause 7.5.5.3.3 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -206,7 +206,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 for fault management subscriptions on VNF ... Pre-conditions: none - ... Reference: clause 7.5.5.3.4 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.4 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -218,7 +218,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 for fault management subscriptions on VNF ... Pre-conditions: none - ... Reference: clause 7.5.5.3.5 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 7.5.5.3.5 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: subscription is not deleted -- GitLab From 989123078f9c60cf48056705c555aabf9b0c88de Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 26 Oct 2020 16:11:25 +0500 Subject: [PATCH 023/116] minor bugs fix added --- .../NFVMANOFaultManagement-API/Alarms.robot | 1 - .../IndividualAlarm.robot | 17 +++++---- .../IndividualSubscription.robot | 4 +-- .../Subscriptions.robot | 35 +++++++++---------- 4 files changed, 27 insertions(+), 30 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/Alarms.robot b/SOL009/NFVMANOFaultManagement-API/Alarms.robot index c31d850cb..4ac515cb8 100644 --- a/SOL009/NFVMANOFaultManagement-API/Alarms.robot +++ b/SOL009/NFVMANOFaultManagement-API/Alarms.robot @@ -6,7 +6,6 @@ Library JSONLibrary Library JSONSchemaLibrary schemas/ Library OperatingSystem - *** Test Cases *** POST Alarms - Method not implemented [Documentation] Test ID: 8.3.3.1.1 diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot index 49d8d806e..5a38fd5f5 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualAlarm.robot @@ -7,12 +7,10 @@ Library JSONLibrary Library JSONSchemaLibrary schemas/ Library DependencyLibrary - - *** Test Cases *** -POST Alarm - Method not implemented +POST Individual Alarm - Method not implemented [Documentation] Test ID: 8.3.3.2.1 - ... Test title: POST Alarm - Method not implemented + ... Test title: POST Individual Alarm - Method not implemented ... Test objective: The objective is to test that Post method is not allowed to create fault management individual alarm on NFV-MANO ... Pre-conditions: none ... Reference: clause 7.5.4.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 @@ -46,11 +44,12 @@ Get information about an fault management individual alarm - Not Found ... Post-Conditions: none GET Fault Management Individual Alarm Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails -PUT Alarm - Method not implemented +PUT Individual Alarm - Method not implemented [Documentation] Test ID: 8.3.3.2.4 - ... Test title: PUT Alarm - Method not implemented - ... Test objective: he objective is to test that PUT method is not allowed to for fault management individual alarm on NFV-MANO + ... Test title: PUT Individual Alarm - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to for fault management individual alarm on NFV-MANO ... Pre-conditions: none ... Reference: clause 7.5.4.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -100,9 +99,9 @@ Modify an individual alarm resource - Conflict Check HTTP Response Body Json Schema Is ProblemDetails Check Postcondition fault management individual alarm exists -DELETE Alarm - Method not implemented +DELETE Individual Alarm - Method not implemented [Documentation] Test ID: 8.3.3.2.8 - ... Test title: DELETE Alarm - Method not implemented + ... Test title: DELETE Individual Alarm - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete fault management individual alarm on NFV-MANO. ... Pre-conditions: none ... Reference: clause 7.5.4.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 diff --git a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot index b4022daf4..a957c5e34 100644 --- a/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOFaultManagement-API/IndividualSubscription.robot @@ -75,7 +75,7 @@ DELETE an individual subscription ... Reference: clause 7.5.6.3.5 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: subscription is not deleted + ... Post-Conditions: subscription is deleted DELETE Individual Subscription Check HTTP Response Status Code Is 204 - Check Individual Subscription deleted + Check Individual Subscription deleted \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot index cfa5851cc..d9f55b948 100644 --- a/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOFaultManagement-API/Subscriptions.robot @@ -45,7 +45,7 @@ Create a new alarm subscription - NO DUPLICATION ... Pre-conditions: subscription with the same filter and callbackUri exists ... Reference: clause 7.5.5.3.1 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: the NFV-MANO decides to not create a duplicate subscription resource + ... Applicability: the NFV-MANO does not allow to create a duplicate subscription resource ... Post-Conditions: duplicated subscription is not created POST Subscription Duplication not permitted Check HTTP Response Status Code Is 303 @@ -122,26 +122,25 @@ GET Subscription with attribute-based filter "id" [Documentation] Test ID: 8.3.3.3.9 ... Test title: GET Subscription with attribute-based filter "id" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "id" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get subscriptions with filter "id" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is FmSubscription Check PostCondition HTTP Response Body Subscription Matches the requested attribute-based filter "id" - Get subscriptions with filter "filter.notificationTypes" [Documentation] Test ID: 8.3.3.3.10 ... Test title: GET Subscription with attribute-based filter "filter.notificationTypes" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.notificationTypes" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get subscriptions with filter "filter_notificationTypes" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is FmSubscriptions @@ -151,11 +150,11 @@ Get subscriptions with filter "filter.perceivedSeverities" [Documentation] Test ID: 8.3.3.3.11 ... Test title: GET Subscription with attribute-based filter "filter.perceivedSeverities" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.perceivedSeverities" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get subscriptions with filter "filter_perceivedSeverities" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is FmSubscriptions @@ -165,11 +164,11 @@ Get subscriptions with filter "filter.eventTypes" [Documentation] Test ID: 8.3.3.3.12 ... Test title: GET Subscription with attribute-based filter "filter.eventTypes" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.eventTypes" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get subscriptions with filter "filter_eventTypes" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is FmSubscriptions @@ -179,11 +178,11 @@ Get subscriptions with filter "filter.probableCauses" [Documentation] Test ID: 8.3.3.3.13 ... Test title: GET Subscription with attribute-based filter "filter.probableCauses" ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.probableCauses" - ... Pre-conditions: + ... Pre-conditions: none ... Reference: Clause 7.5.5.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get subscriptions with filter "filter_probableCauses" Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is FmSubscriptions @@ -221,6 +220,6 @@ DELETE subscriptions - Method not implemented ... Reference: clause 7.5.5.3.5 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: subscription is not deleted + ... Post-Conditions: none DELETE Subscriptions Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From a35c08cdf924c64d974cd53fd00cb0d30d14d168 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 15 Jul 2020 11:21:46 +0500 Subject: [PATCH 024/116] Added Test Cases for PMJobs.robot --- .../PMJobs.robot | 296 ++ .../environment/pmJobs.txt | 5 + .../environment/variables.txt | 31 + .../jsons/CreatePmJobRequest.json | 10 + .../schemas/PmJob.schema.json | 145 + .../schemas/PmJobs.schema.json | 148 + .../schemas/ProblemDetails.schema.json | 1 + libspecs/BuiltIn.libspec | 2823 +++++++++++++++++ libspecs/Collections.libspec | 880 +++++ libspecs/DateTime.libspec | 512 +++ libspecs/DependencyLibrary_bb1d1ad.libspec | 55 + libspecs/Dialogs.libspec | 112 + libspecs/Easter.libspec | 15 + libspecs/JSONLibrary_17ae429.libspec | 171 + libspecs/JSONSchemaLibrary_c1d7acb.libspec | 31 + libspecs/MockServerLibrary_03fd3d4.libspec | 258 ++ libspecs/OperatingSystem.libspec | 1138 +++++++ libspecs/Process.libspec | 637 ++++ libspecs/REST_04a9321.libspec | 999 ++++++ libspecs/Reserved.libspec | 87 + libspecs/Screenshot.libspec | 132 + libspecs/String.libspec | 722 +++++ libspecs/Telnet.libspec | 744 +++++ libspecs/XML.libspec | 1365 ++++++++ 24 files changed, 11317 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/pmJobs.txt create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt create mode 100644 SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/PmJob.schema.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/PmJobs.schema.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/ProblemDetails.schema.json create mode 100644 libspecs/BuiltIn.libspec create mode 100644 libspecs/Collections.libspec create mode 100644 libspecs/DateTime.libspec create mode 100644 libspecs/DependencyLibrary_bb1d1ad.libspec create mode 100644 libspecs/Dialogs.libspec create mode 100644 libspecs/Easter.libspec create mode 100644 libspecs/JSONLibrary_17ae429.libspec create mode 100644 libspecs/JSONSchemaLibrary_c1d7acb.libspec create mode 100644 libspecs/MockServerLibrary_03fd3d4.libspec create mode 100644 libspecs/OperatingSystem.libspec create mode 100644 libspecs/Process.libspec create mode 100644 libspecs/REST_04a9321.libspec create mode 100644 libspecs/Reserved.libspec create mode 100644 libspecs/Screenshot.libspec create mode 100644 libspecs/String.libspec create mode 100644 libspecs/Telnet.libspec create mode 100644 libspecs/XML.libspec diff --git a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot new file mode 100644 index 000000000..3b28a5740 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot @@ -0,0 +1,296 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Resource environment/pmJobs.txt +Library JSONLibrary +Library OperatingSystem +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +GET all NFV-MANO Performance Monitoring Jobs + [Documentation] Test ID: 8.3.2.1.1 + ... Test title: GET all NFV-MANO Performance Monitoring Jobs + ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance monitoring jobs and perform a JSON schema validation + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET all NFV-MANO Performance Monitoring Jobs + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobs + +GET NFV-MANO Performance Monitoring Jobs with attribute-based filter + [Documentation] Test ID: 8.3.2.1.2 + ... Test title: GET all NFV-MANO Performance Monitoring Jobs with attribute-based filter + ... Test objective: The objective is to test the retrieval of NFV-MANO performance monitoring jobs using attribute-based filter, perform a JSON schema validation of the collected jobs data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with attribute-based filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobs + +GET all NFV-MANO Performance Monitoring Jobs with all_fields attribute selector + [Documentation] Test ID: 8.3.2.1.3 + ... Test title: GET all NFV-MANO Performance Monitoring Jobs with all_fields attribute selector + ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs all_fields attribute selector, perform a JSON schema validation of the collected jobs data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobs + +GET all NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector + [Documentation] Test ID: 8.3.2.1.4 + ... Test title: GET all NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector + ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs exclude_default attribute selector, perform a JSON schema validation of the collected jobs data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobs + +GET all NFV-MANO Performance Monitoring Jobs with fields attribute selector + [Documentation] Test ID: 8.3.2.1.5 + ... Test title: GET all NFV-MANO Performance Monitoring Jobs with fields attribute selector + ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs fields attribute selector, perform a JSON schema validation of the collected jobs data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO supports the use of fields attribute selector + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobs + +GET all NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector + [Documentation] Test ID: 8.3.2.1.6 + ... Test title: GET all NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector + ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs exclude_fields attribute selector, perform a JSON schema validation of the collected jobs data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO supports the use of exclude_fields attribute selector + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobs + +GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter + [Documentation] Test ID: 8.3.2.1.7 + ... Test title: GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of NFV-MANO performance monitoring jobs fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint + [Documentation] Test ID: 8.3.2.1.8 + ... Test title: GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint + ... Test objective: The objective is to test that the retrieval of NFV-MANO performance monitoring jobs fails when using invalid resource endpoint + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint + Check HTTP Response Status Code Is 404 + +Create new NFV-MANO Performance Monitoring Job + [Documentation] Test ID: 8.3.2.1.9 + ... Test title: Create a new NFV-MANO Performance Monitoring Job + ... Test objective: The objective is to test the creation of a new NFV-MANO performance monitoring job and perform the JSON schema validation of the returned job data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is successfully created on the NFV-MANO + Send Post Request Create new NFV-MANO Performance Monitoring Job + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PmJob + Check Postcondition PmJob Exists + +PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented + [Documentation] Test ID: 8.3.2.1.10 + ... Test title: PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Monitoring Jobs + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send PUT Request for all NFV-MANO Performance Monitoring Jobs + Check HTTP Response Status Code Is 405 + +PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) + [Documentation] Test ID: 8.3.2.1.11 + ... Test title: PATCH all NFV-MANO Performance Monitoring Jobs - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to update NFV-MANO Performance Monitoring Jobs + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send PATCH Request for all NFV-MANO Performance Monitoring Jobs + Check HTTP Response Status Code Is 405 + +DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented + [Documentation] Test ID: 8.3.2.1.12 + ... Test title: DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Monitoring Jobs + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send DELETE Request for all NFV-MANO Performance Monitoring Jobs + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Performance Monitoring Jobs Exist + +*** Keywords *** +GET all NFV-MANO Performance Monitoring Jobs + Log Trying to get all PM Jobs present in the NFV-MANO + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with attribute-based filter + Log Trying to get all PM Jobs present in the NFV-MANO, using filter params + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${POS_FILTER} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with all_fields attribute selector + Log Trying to get all PM Jobs present in the NFV-MANO, using 'all_fields' filter + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?all_fields + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector + Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with fields attribute selector + Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params + Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector + Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params + Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter + Log Trying to get all PM Jobs present in the NFV-MANO, using an erroneous filter param + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?${NEG_FILTER} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint + Log Trying to perform a GET on a erroneous URI + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_job # wrong URI /pm_job instead of /pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post Request Create new NFV-MANO Performance Monitoring Job + Log Creating a new PM Job + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body}= Get File jsons/CreatePmJobRequest.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PUT Request for all NFV-MANO Performance Monitoring Jobs + 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": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PATCH Request for all NFV-MANO Performance Monitoring Jobs + 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": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send DELETE Request for all NFV-MANO Performance Monitoring Jobs + 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": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition PmJob Exists + Log Checking that Pm Job exists + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${response['body']['id']} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJob + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + +Check Postcondition NFV-MANO Performance Monitoring Jobs Exist + Log Checking that Pm Job still exists + GET all NFV-MANO Performance Monitoring Jobs \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/pmJobs.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/pmJobs.txt new file mode 100644 index 000000000..30b6682ef --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/pmJobs.txt @@ -0,0 +1,5 @@ +*** Variables *** +${POS_FILTER} objectInstanceIds=1f50d68b-82e8-4deb-bd40-c934d4d1ac0a +${NEG_FILTER} criteriaPmJob=erroneousAttributeName +${fields} criteria,objectInstanceIds +${response} httpresponse diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt new file mode 100644 index 000000000..3ea92791d --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt @@ -0,0 +1,31 @@ +*** Variables *** +${NFVMANOHOST} localhost # Hostname of the VNFM +${NFVMANO_PORT} 8080 # Listening port of the VNFM +${NFVMANO_SCHEMA} https + + +${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 +${NEG_AUTHORIZATION} Bearer negativetoken + +${CONTENT_TYPE_JSON} application/json +${ACCEPT_JSON} application/json +${AUTH_USAGE} 1 +${FIELD_USAGE} 1 +${NFVMANO_CHECKS_NOTIF_ENDPOINT} 1 ## If true, during subscription, the FUT performs a get to the notification endpoint + +${NFVMANO_ALLOWS_DUPLICATE_SUBS} 1 + +${apiRoot} / +${apiMajorVersion} v1 +${apiName} nfvmanopm + +${callback_port} 9091 +${callback_uri} http://172.22.1.7:${callback_port} +${callback_endpoint} /nfvmanopm/subscriptions +${callback_endpoint_error} /subs_404 +${sleep_interval} 20s + +${total_polling_time} 2 min +${polling_interval} 10 sec + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json new file mode 100644 index 000000000..026d55498 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json @@ -0,0 +1,10 @@ +{ + "objectType":"dummy", + "objectInstanceIds" : ["1f50d68b-82e8-4deb-bd40-c934d4d1ac0a"], + "criteria" : { + "performanceMetric": [], + "performanceMetricGroup": [], + "collectionPeriod": 10, + "reportingPeriod": 30 + } +} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/PmJob.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmJob.schema.json new file mode 100644 index 000000000..7b4833902 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmJob.schema.json @@ -0,0 +1,145 @@ +{ + "description": "This type represents a PM job. \n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "objectType": { + "description": "Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031.\n", + "type": "string" + }, + "objectInstanceIds": { + "description": "Identifiers of the measured object instance for which performance information is collected. This attribute shall contain the identifier of the instance of the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "minItems": 1 + }, + "subObjectInstanceIds": { + "description": "Identifiers of the sub-object instances of the measured object instance for which performance information is requested to be collected. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is present, the cardinality of the \"objectInstanceIds\" attribute shall be 1. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, measurements will be taken for all sub-object instances of the measured object instance.\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" + } + }, + "criteria": { + "description": "This type represents collection criteria for PM jobs.\n", + "type": "object", + "properties": { + "performanceMetric": { + "description": "This defines the types of performance metrics for the specified measured object(s). This attribute’s value shall contain the related \"Measurement Name\" values as defined in clause 8.4 of ETSI GS NFV-IFA 031. At least one of the two attributes (performance metric or group) shall be present.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "performanceMetricGroup": { + "description": "Group of performance metrics. A metric group is a pre-defined list of metrics, known to the producer that it can decompose to individual metrics. This attribute’s value shall contain the related \"Measurement Group\" values as defined in clause 8.4 of ETSI GS NFV-IFA 031. At least one of the two attributes (performance metric or group) shall be present.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "collectionPeriod": { + "description": "Specifies the periodicity at which the producer will collect performance information. The unit shall be seconds. \nAt the end of each reportingPeriod, the producer will inform the API consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together. \nIn particular when choosing short collection and reporting periods, the number of PM jobs that can be supported depends on the capability of the producing entity.\n", + "type": "integer" + }, + "reportingPeriod": { + "description": "Specifies the periodicity at which the producer will report to the API consumer about performance information. The unit shall be seconds.\nAt the end of each reportingPeriod, the producer will inform the API consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together. \nIn particular when choosing short collection and reporting periods, the number of PM jobs that can be supported depends on the capability of the producing entity.\n", + "type": "integer" + }, + "reportingBoundary": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "collectionPeriod", + "reportingPeriod" + ] + }, + "reports": { + "description": "Information about available reports collected by this PM job.\n", + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "readyTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "expiryTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "fileSize": { + "description": "Unsigned integer\n", + "type": "number" + } + }, + "required": [ + "href", + "readyTime" + ] + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "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" + } + } + }, + "objects": { + "description": "Links to resources representing the measured object instances for which performance information is collected. Shall be present if the measured object instance information is accessible as a resource.\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" + } + } + } + } + }, + "required": [ + "self" + ] + } + }, + "required": [ + "id", + "objectType", + "objectInstanceIds", + "criteria", + "_links" + ] +} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/PmJobs.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmJobs.schema.json new file mode 100644 index 000000000..95ada1a02 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmJobs.schema.json @@ -0,0 +1,148 @@ +{ + "type": "array", + "items": { + "description": "This type represents a PM job. \n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "objectType": { + "description": "Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031.\n", + "type": "string" + }, + "objectInstanceIds": { + "description": "Identifiers of the measured object instance for which performance information is collected. This attribute shall contain the identifier of the instance of the measure object according to their type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "minItems": 1 + }, + "subObjectInstanceIds": { + "description": "Identifiers of the sub-object instances of the measured object instance for which performance information is requested to be collected. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is present, the cardinality of the \"objectInstanceIds\" attribute shall be 1. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, measurements will be taken for all sub-object instances of the measured object instance.\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" + } + }, + "criteria": { + "description": "This type represents collection criteria for PM jobs.\n", + "type": "object", + "properties": { + "performanceMetric": { + "description": "This defines the types of performance metrics for the specified measured object(s). This attribute’s value shall contain the related \"Measurement Name\" values as defined in clause 8.4 of ETSI GS NFV-IFA 031. At least one of the two attributes (performance metric or group) shall be present.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "performanceMetricGroup": { + "description": "Group of performance metrics. A metric group is a pre-defined list of metrics, known to the producer that it can decompose to individual metrics. This attribute’s value shall contain the related \"Measurement Group\" values as defined in clause 8.4 of ETSI GS NFV-IFA 031. At least one of the two attributes (performance metric or group) shall be present.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "collectionPeriod": { + "description": "Specifies the periodicity at which the producer will collect performance information. The unit shall be seconds. \nAt the end of each reportingPeriod, the producer will inform the API consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together. \nIn particular when choosing short collection and reporting periods, the number of PM jobs that can be supported depends on the capability of the producing entity.\n", + "type": "integer" + }, + "reportingPeriod": { + "description": "Specifies the periodicity at which the producer will report to the API consumer about performance information. The unit shall be seconds.\nAt the end of each reportingPeriod, the producer will inform the API consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together. \nIn particular when choosing short collection and reporting periods, the number of PM jobs that can be supported depends on the capability of the producing entity.\n", + "type": "integer" + }, + "reportingBoundary": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "collectionPeriod", + "reportingPeriod" + ] + }, + "reports": { + "description": "Information about available reports collected by this PM job.\n", + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "readyTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "expiryTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "fileSize": { + "description": "Unsigned integer\n", + "type": "number" + } + }, + "required": [ + "href", + "readyTime" + ] + } + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "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" + } + } + }, + "objects": { + "description": "Links to resources representing the measured object instances for which performance information is collected. Shall be present if the measured object instance information is accessible as a resource.\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" + } + } + } + } + }, + "required": [ + "self" + ] + } + }, + "required": [ + "id", + "objectType", + "objectInstanceIds", + "criteria", + "_links" + ] +} +} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/ProblemDetails.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/ProblemDetails.schema.json new file mode 100644 index 000000000..2af3ef9b3 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/ProblemDetails.schema.json @@ -0,0 +1 @@ +{ "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", "type": "object", "required": [ "status", "detail" ], "properties": { "type": { "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", "type": "string", "format": "URI" }, "title": { "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", "type": "string" }, "status": { "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", "type": "integer" }, "detail": { "description": "A human-readable explanation specific to this occurrence of the problem.\n", "type": "string" }, "instance": { "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", "type": "string", "format": "URI" } }} \ No newline at end of file diff --git a/libspecs/BuiltIn.libspec b/libspecs/BuiltIn.libspec new file mode 100644 index 000000000..1f1b093cf --- /dev/null +++ b/libspecs/BuiltIn.libspec @@ -0,0 +1,2823 @@ + + +3.1 +global +yes +An always available standard library with often needed keywords. + +``BuiltIn`` is Robot Framework's standard library that provides a set +of generic keywords needed often. It is imported automatically and +thus always available. The provided keywords can be used, for example, +for verifications (e.g. `Should Be Equal`, `Should Contain`), +conversions (e.g. `Convert To Integer`) and for various other purposes +(e.g. `Log`, `Sleep`, `Run Keyword If`, `Set Global Variable`). + +== Table of contents == + +- `HTML error messages` +- `Evaluating expressions` +- `Boolean arguments` +- `Pattern matching` +- `Multiline string comparisons` +- `Shortcuts` +- `Keywords` + += HTML error messages = + +Many of the keywords accept an optional error message to use if the keyword +fails, and it is possible to use HTML in these messages by prefixing them +with ``*HTML*``. See `Fail` keyword for a usage example. Notice that using +HTML in messages is not limited to BuiltIn library but works with any +error message. + += Evaluating expressions = + +Many keywords, such as `Evaluate`, `Run Keyword If` and `Should Be True`, +accept an expression that is evaluated in Python. These expressions are +evaluated using Python's +[http://docs.python.org/library/functions.html#eval|eval] function so +that all Python built-ins like ``len()`` and ``int()`` are available. +`Evaluate` allows configuring the execution namespace with custom modules, +and other keywords have [http://docs.python.org/library/os.html|os] +and [http://docs.python.org/library/sys.html|sys] modules available +automatically. + +Examples: +| `Run Keyword If` | os.sep == '/' | Log | Not on Windows | +| ${random int} = | `Evaluate` | random.randint(0, 5) | modules=random | + +When a variable is used in the expressing using the normal ``${variable}`` +syntax, its value is replaces before the expression is evaluated. This +means that the value used in the expression will be the string +representation of the variable value, not the variable value itself. +This is not a problem with numbers and other objects that have a string +representation that can be evaluated directly, but with other objects +the behavior depends on the string representation. Most importantly, +strings must always be quoted, and if they can contain newlines, they must +be triple quoted. + +Examples: +| `Should Be True` | ${rc} < 10 | Return code greater than 10 | +| `Run Keyword If` | '${status}' == 'PASS' | Log | Passed | +| `Run Keyword If` | 'FAIL' in '''${output}''' | Log | Output contains FAIL | + +Starting from Robot Framework 2.9, variables themselves are automatically +available in the evaluation namespace. They can be accessed using special +variable syntax without the curly braces like ``$variable``. These +variables should never be quoted, and in fact they are not even replaced +inside strings. + +Examples: +| `Should Be True` | $rc < 10 | Return code greater than 10 | +| `Run Keyword If` | $status == 'PASS' | `Log` | Passed | +| `Run Keyword If` | 'FAIL' in $output | `Log` | Output contains FAIL | +| `Should Be True` | len($result) > 1 and $result[1] == 'OK' | + +Using the ``$variable`` syntax slows down expression evaluation a little. +This should not typically matter, but should be taken into account if +complex expressions are evaluated often and there are strict time +constrains. + +Notice that instead of creating complicated expressions, it is often better +to move the logic into a test library. That eases maintenance and can also +enhance execution speed. + += Boolean arguments = + +Some keywords accept arguments that are handled as Boolean values true or +false. If such an argument is given as a string, it is considered false if +it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or +``0``, case-insensitively. Keywords verifying something that allow dropping +actual and expected values from the possible error message also consider +string ``no values`` to be false. Other strings are considered true +regardless their value, and other argument types are tested using the same +[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. + +True examples: +| `Should Be Equal` | ${x} | ${y} | Custom error | values=True | # Strings are generally true. | +| `Should Be Equal` | ${x} | ${y} | Custom error | values=yes | # Same as the above. | +| `Should Be Equal` | ${x} | ${y} | Custom error | values=${TRUE} | # Python ``True`` is true. | +| `Should Be Equal` | ${x} | ${y} | Custom error | values=${42} | # Numbers other than 0 are true. | + +False examples: +| `Should Be Equal` | ${x} | ${y} | Custom error | values=False | # String ``false`` is false. | +| `Should Be Equal` | ${x} | ${y} | Custom error | values=no | # Also string ``no`` is false. | +| `Should Be Equal` | ${x} | ${y} | Custom error | values=${EMPTY} | # Empty string is false. | +| `Should Be Equal` | ${x} | ${y} | Custom error | values=${FALSE} | # Python ``False`` is false. | +| `Should Be Equal` | ${x} | ${y} | Custom error | values=no values | # ``no values`` works with ``values`` argument | + +Considering string ``NONE`` false is new in Robot Framework 3.0.3 and +considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. + += Pattern matching = + +Many keywords accepts arguments as either glob or regular expression +patterns. + +== Glob patterns == + +Some keywords, for example `Should Match`, support so called +[http://en.wikipedia.org/wiki/Glob_(programming)|glob patterns] where: + +| ``*`` | matches any string, even an empty string | +| ``?`` | matches any single character | +| ``[chars]`` | matches one character in the bracket | +| ``[!chars]`` | matches one character not in the bracket | +| ``[a-z]`` | matches one character from the range in the bracket | +| ``[!a-z]`` | matches one character not from the range in the bracket | + +Unlike with glob patterns normally, path separator characters ``/`` and +``\`` and the newline character ``\n`` are matches by the above +wildcards. + +Support for brackets like ``[abc]`` and ``[!a-z]`` is new in +Robot Framework 3.1 + +== Regular expressions == + +Some keywords, for example `Should Match Regexp`, support +[http://en.wikipedia.org/wiki/Regular_expression|regular expressions] +that are more powerful but also more complicated that glob patterns. +The regular expression support is implemented using Python's +[http://docs.python.org/library/re.html|re module] and its documentation +should be consulted for more information about the syntax. + +Because the backslash character (``\``) is an escape character in +Robot Framework test data, possible backslash characters in regular +expressions need to be escaped with another backslash like ``\\d\\w+``. +Strings that may contain special characters but should be handled +as literal strings, can be escaped with the `Regexp Escape` keyword. + += Multiline string comparisons = + +`Should Be Equal` and `Should Be Equal As Strings` report the failures using +[http://en.wikipedia.org/wiki/Diff_utility#Unified_format|unified diff +format] if both strings have more than two lines. New in Robot Framework +2.9.1. + +Example: +| ${first} = | `Catenate` | SEPARATOR=\n | Not in second | Same | Differs | Same | +| ${second} = | `Catenate` | SEPARATOR=\n | Same | Differs2 | Same | Not in first | +| `Should Be Equal` | ${first} | ${second} | + +Results in the following error message: + +| Multiline strings are different: +| --- first +| +++ second +| @@ -1,4 +1,4 @@ +| -Not in second +| Same +| -Differs +| +Differs2 +| Same +| +Not in first + + +object +method_name +*args +**kwargs + +Calls the named method of the given object with the provided arguments. + +The possible return value from the method is returned and can be +assigned to a variable. Keyword fails both if the object does not have +a method with the given name or if executing the method raises an +exception. + +Support for ``**kwargs`` is new in Robot Framework 2.9. Since that +possible equal signs in other arguments must be escaped with a +backslash like ``\=``. + +Examples: +| Call Method | ${hashtable} | put | myname | myvalue | +| ${isempty} = | Call Method | ${hashtable} | isEmpty | | +| Should Not Be True | ${isempty} | | | | +| ${value} = | Call Method | ${hashtable} | get | myname | +| Should Be Equal | ${value} | myvalue | | | +| Call Method | ${object} | kwargs | name=value | foo=bar | +| Call Method | ${object} | positional | escaped\=equals | + + + + + +*items + +Catenates the given items together and returns the resulted string. + +By default, items are catenated with spaces, but if the first item +contains the string ``SEPARATOR=<sep>``, the separator ``<sep>`` is +used instead. Items are converted into strings when necessary. + +Examples: +| ${str1} = | Catenate | Hello | world | | +| ${str2} = | Catenate | SEPARATOR=--- | Hello | world | +| ${str3} = | Catenate | SEPARATOR= | Hello | world | +=> +| ${str1} = 'Hello world' +| ${str2} = 'Hello---world' +| ${str3} = 'Helloworld' + + + + + +*messages + +Displays the given messages in the log file as keyword arguments. + +This keyword does nothing with the arguments it receives, but as they +are visible in the log, this keyword can be used to display simple +messages. Given arguments are ignored so thoroughly that they can even +contain non-existing variables. If you are interested about variable +values, you can use the `Log` or `Log Many` keywords. + + + + + + +Skips the current for loop iteration and continues from the next. + +Skips the remaining keywords in the current for loop iteration and +continues from the next one. Can be used directly in a for loop or +in a keyword that the loop uses. + +Example: +| :FOR | ${var} | IN | @{VALUES} | +| | Run Keyword If | '${var}' == 'CONTINUE' | Continue For Loop | +| | Do Something | ${var} | + +See `Continue For Loop If` to conditionally continue a for loop without +using `Run Keyword If` or other wrapper keywords. + + + + + +condition + +Skips the current for loop iteration if the ``condition`` is true. + +A wrapper for `Continue For Loop` to continue a for loop based on +the given condition. The condition is evaluated using the same +semantics as with `Should Be True` keyword. + +Example: +| :FOR | ${var} | IN | @{VALUES} | +| | Continue For Loop If | '${var}' == 'CONTINUE' | +| | Do Something | ${var} | + + + + + +item +base=None +prefix=None +length=None + +Converts the given item to a binary string. + +The ``item``, with an optional ``base``, is first converted to an +integer using `Convert To Integer` internally. After that it +is converted to a binary number (base 2) represented as a +string such as ``1011``. + +The returned value can contain an optional ``prefix`` and can be +required to be of minimum ``length`` (excluding the prefix and a +possible minus sign). If the value is initially shorter than +the required length, it is padded with zeros. + +Examples: +| ${result} = | Convert To Binary | 10 | | | # Result is 1010 | +| ${result} = | Convert To Binary | F | base=16 | prefix=0b | # Result is 0b1111 | +| ${result} = | Convert To Binary | -2 | prefix=B | length=4 | # Result is -B0010 | + +See also `Convert To Integer`, `Convert To Octal` and `Convert To Hex`. + + + + + +item + +Converts the given item to Boolean true or false. + +Handles strings ``True`` and ``False`` (case-insensitive) as expected, +otherwise returns item's +[http://docs.python.org/library/stdtypes.html#truth|truth value] +using Python's ``bool()`` method. + + + + + +input +input_type=text + +Converts the given ``input`` to bytes according to the ``input_type``. + +Valid input types are listed below: + +- ``text:`` Converts text to bytes character by character. All + characters with ordinal below 256 can be used and are converted to + bytes with same values. Many characters are easiest to represent + using escapes like ``\x00`` or ``\xff``. Supports both Unicode + strings and bytes. + +- ``int:`` Converts integers separated by spaces to bytes. Similarly as + with `Convert To Integer`, it is possible to use binary, octal, or + hex values by prefixing the values with ``0b``, ``0o``, or ``0x``, + respectively. + +- ``hex:`` Converts hexadecimal values to bytes. Single byte is always + two characters long (e.g. ``01`` or ``FF``). Spaces are ignored and + can be used freely as a visual separator. + +- ``bin:`` Converts binary values to bytes. Single byte is always eight + characters long (e.g. ``00001010``). Spaces are ignored and can be + used freely as a visual separator. + +In addition to giving the input as a string, it is possible to use +lists or other iterables containing individual characters or numbers. +In that case numbers do not need to be padded to certain length and +they cannot contain extra spaces. + +Examples (last column shows returned bytes): +| ${bytes} = | Convert To Bytes | hyvä | | # hyv\xe4 | +| ${bytes} = | Convert To Bytes | \xff\x07 | | # \xff\x07 | +| ${bytes} = | Convert To Bytes | 82 70 | int | # RF | +| ${bytes} = | Convert To Bytes | 0b10 0x10 | int | # \x02\x10 | +| ${bytes} = | Convert To Bytes | ff 00 07 | hex | # \xff\x00\x07 | +| ${bytes} = | Convert To Bytes | 5246212121 | hex | # RF!!! | +| ${bytes} = | Convert To Bytes | 0000 1000 | bin | # \x08 | +| ${input} = | Create List | 1 | 2 | 12 | +| ${bytes} = | Convert To Bytes | ${input} | int | # \x01\x02\x0c | +| ${bytes} = | Convert To Bytes | ${input} | hex | # \x01\x02\x12 | + +Use `Encode String To Bytes` in ``String`` library if you need to +convert text to bytes using a certain encoding. + + + + + +item +base=None +prefix=None +length=None +lowercase=False + +Converts the given item to a hexadecimal string. + +The ``item``, with an optional ``base``, is first converted to an +integer using `Convert To Integer` internally. After that it +is converted to a hexadecimal number (base 16) represented as +a string such as ``FF0A``. + +The returned value can contain an optional ``prefix`` and can be +required to be of minimum ``length`` (excluding the prefix and a +possible minus sign). If the value is initially shorter than +the required length, it is padded with zeros. + +By default the value is returned as an upper case string, but the +``lowercase`` argument a true value (see `Boolean arguments`) turns +the value (but not the given prefix) to lower case. + +Examples: +| ${result} = | Convert To Hex | 255 | | | # Result is FF | +| ${result} = | Convert To Hex | -10 | prefix=0x | length=2 | # Result is -0x0A | +| ${result} = | Convert To Hex | 255 | prefix=X | lowercase=yes | # Result is Xff | + +See also `Convert To Integer`, `Convert To Binary` and `Convert To Octal`. + + + + + +item +base=None + +Converts the given item to an integer number. + +If the given item is a string, it is by default expected to be an +integer in base 10. There are two ways to convert from other bases: + +- Give base explicitly to the keyword as ``base`` argument. + +- Prefix the given string with the base so that ``0b`` means binary + (base 2), ``0o`` means octal (base 8), and ``0x`` means hex (base 16). + The prefix is considered only when ``base`` argument is not given and + may itself be prefixed with a plus or minus sign. + +The syntax is case-insensitive and possible spaces are ignored. + +Examples: +| ${result} = | Convert To Integer | 100 | | # Result is 100 | +| ${result} = | Convert To Integer | FF AA | 16 | # Result is 65450 | +| ${result} = | Convert To Integer | 100 | 8 | # Result is 64 | +| ${result} = | Convert To Integer | -100 | 2 | # Result is -4 | +| ${result} = | Convert To Integer | 0b100 | | # Result is 4 | +| ${result} = | Convert To Integer | -0x100 | | # Result is -256 | + +See also `Convert To Number`, `Convert To Binary`, `Convert To Octal`, +`Convert To Hex`, and `Convert To Bytes`. + + + + + +item +precision=None + +Converts the given item to a floating point number. + +If the optional ``precision`` is positive or zero, the returned number +is rounded to that number of decimal digits. Negative precision means +that the number is rounded to the closest multiple of 10 to the power +of the absolute precision. If a number is equally close to a certain +precision, it is always rounded away from zero. + +Examples: +| ${result} = | Convert To Number | 42.512 | | # Result is 42.512 | +| ${result} = | Convert To Number | 42.512 | 1 | # Result is 42.5 | +| ${result} = | Convert To Number | 42.512 | 0 | # Result is 43.0 | +| ${result} = | Convert To Number | 42.512 | -1 | # Result is 40.0 | + +Notice that machines generally cannot store floating point numbers +accurately. This may cause surprises with these numbers in general +and also when they are rounded. For more information see, for example, +these resources: + +- http://docs.python.org/tutorial/floatingpoint.html +- http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition + +If you want to avoid possible problems with floating point numbers, +you can implement custom keywords using Python's +[http://docs.python.org/library/decimal.html|decimal] or +[http://docs.python.org/library/fractions.html|fractions] modules. + +If you need an integer number, use `Convert To Integer` instead. + + + + + +item +base=None +prefix=None +length=None + +Converts the given item to an octal string. + +The ``item``, with an optional ``base``, is first converted to an +integer using `Convert To Integer` internally. After that it +is converted to an octal number (base 8) represented as a +string such as ``775``. + +The returned value can contain an optional ``prefix`` and can be +required to be of minimum ``length`` (excluding the prefix and a +possible minus sign). If the value is initially shorter than +the required length, it is padded with zeros. + +Examples: +| ${result} = | Convert To Octal | 10 | | | # Result is 12 | +| ${result} = | Convert To Octal | -F | base=16 | prefix=0 | # Result is -017 | +| ${result} = | Convert To Octal | 16 | prefix=oct | length=4 | # Result is oct0020 | + +See also `Convert To Integer`, `Convert To Binary` and `Convert To Hex`. + + + + + +item + +Converts the given item to a Unicode string. + +Uses ``__unicode__`` or ``__str__`` method with Python objects and +``toString`` with Java objects. + +Use `Encode String To Bytes` and `Decode Bytes To String` keywords +in ``String`` library if you need to convert between Unicode and byte +strings using different encodings. Use `Convert To Bytes` if you just +want to create byte strings. + + + + + +*items + +Creates and returns a dictionary based on the given ``items``. + +Items are typically given using the ``key=value`` syntax same way as +``&{dictionary}`` variables are created in the Variable table. Both +keys and values can contain variables, and possible equal sign in key +can be escaped with a backslash like ``escaped\=key=value``. It is +also possible to get items from existing dictionaries by simply using +them like ``&{dict}``. + +Alternatively items can be specified so that keys and values are given +separately. This and the ``key=value`` syntax can even be combined, +but separately given items must be first. + +If same key is used multiple times, the last value has precedence. +The returned dictionary is ordered, and values with strings as keys +can also be accessed using a convenient dot-access syntax like +``${dict.key}``. + +Examples: +| &{dict} = | Create Dictionary | key=value | foo=bar | | | # key=value syntax | +| Should Be True | ${dict} == {'key': 'value', 'foo': 'bar'} | +| &{dict2} = | Create Dictionary | key | value | foo | bar | # separate key and value | +| Should Be Equal | ${dict} | ${dict2} | +| &{dict} = | Create Dictionary | ${1}=${2} | &{dict} | foo=new | | # using variables | +| Should Be True | ${dict} == {1: 2, 'key': 'value', 'foo': 'new'} | +| Should Be Equal | ${dict.key} | value | | | | # dot-access | + +This keyword was changed in Robot Framework 2.9 in many ways: +- Moved from ``Collections`` library to ``BuiltIn``. +- Support also non-string keys in ``key=value`` syntax. +- Returned dictionary is ordered and dot-accessible. +- Old syntax to give keys and values separately was deprecated, but + deprecation was later removed in RF 3.0.1. + + + + + +*items + +Returns a list containing given items. + +The returned list can be assigned both to ``${scalar}`` and ``@{list}`` +variables. + +Examples: +| @{list} = | Create List | a | b | c | +| ${scalar} = | Create List | a | b | c | +| ${ints} = | Create List | ${1} | ${2} | ${3} | + + + + + +expression +modules=None +namespace=None + +Evaluates the given expression in Python and returns the results. + +``expression`` is evaluated in Python as explained in `Evaluating +expressions`. + +``modules`` argument can be used to specify a comma separated +list of Python modules to be imported and added to the evaluation +namespace. + +``namespace`` argument can be used to pass a custom evaluation +namespace as a dictionary. Possible ``modules`` are added to this +namespace. + +Variables used like ``${variable}`` are replaced in the expression +before evaluation. Variables are also available in the evaluation +namespace and can be accessed using special syntax ``$variable``. +This is a new feature in Robot Framework 2.9 and it is explained more +thoroughly in `Evaluating expressions`. + +Examples (expecting ``${result}`` is 3.14): +| ${status} = | Evaluate | 0 < ${result} < 10 | # Would also work with string '3.14' | +| ${status} = | Evaluate | 0 < $result < 10 | # Using variable itself, not string representation | +| ${random} = | Evaluate | random.randint(0, sys.maxint) | modules=random, sys | +| ${ns} = | Create Dictionary | x=${4} | y=${2} | +| ${result} = | Evaluate | x*10 + y | namespace=${ns} | +=> +| ${status} = True +| ${random} = <random integer> +| ${result} = 42 + + + + + + +Stops executing the enclosing for loop. + +Exits the enclosing for loop and continues execution after it. +Can be used directly in a for loop or in a keyword that the loop uses. + +Example: +| :FOR | ${var} | IN | @{VALUES} | +| | Run Keyword If | '${var}' == 'EXIT' | Exit For Loop | +| | Do Something | ${var} | + +See `Exit For Loop If` to conditionally exit a for loop without +using `Run Keyword If` or other wrapper keywords. + + + + + +condition + +Stops executing the enclosing for loop if the ``condition`` is true. + +A wrapper for `Exit For Loop` to exit a for loop based on +the given condition. The condition is evaluated using the same +semantics as with `Should Be True` keyword. + +Example: +| :FOR | ${var} | IN | @{VALUES} | +| | Exit For Loop If | '${var}' == 'EXIT' | +| | Do Something | ${var} | + + + + + +msg=None +*tags + +Fails the test with the given message and optionally alters its tags. + +The error message is specified using the ``msg`` argument. +It is possible to use HTML in the given error message, similarly +as with any other keyword accepting an error message, by prefixing +the error with ``*HTML*``. + +It is possible to modify tags of the current test case by passing tags +after the message. Tags starting with a hyphen (e.g. ``-regression``) +are removed and others added. Tags are modified using `Set Tags` and +`Remove Tags` internally, and the semantics setting and removing them +are the same as with these keywords. + +Examples: +| Fail | Test not ready | | | # Fails with the given message. | +| Fail | *HTML*<b>Test not ready</b> | | | # Fails using HTML in the message. | +| Fail | Test not ready | not-ready | | # Fails and adds 'not-ready' tag. | +| Fail | OS not supported | -regression | | # Removes tag 'regression'. | +| Fail | My message | tag | -t* | # Removes all tags starting with 't' except the newly added 'tag'. | + +See `Fatal Error` if you need to stop the whole test execution. + + + + + +msg=None + +Stops the whole test execution. + +The test or suite where this keyword is used fails with the provided +message, and subsequent tests fail with a canned message. +Possible teardowns will nevertheless be executed. + +See `Fail` if you only want to stop one test case unconditionally. + + + + + +item1 +item2 + +Returns and logs how many times ``item2`` is found from ``item1``. + +This keyword works with Python strings and lists and all objects +that either have ``count`` method or can be converted to Python lists. + +Example: +| ${count} = | Get Count | ${some item} | interesting value | +| Should Be True | 5 < ${count} < 10 | + + + + + +item + +Returns and logs the length of the given item as an integer. + +The item can be anything that has a length, for example, a string, +a list, or a mapping. The keyword first tries to get the length with +the Python function ``len``, which calls the item's ``__len__`` method +internally. If that fails, the keyword tries to call the item's +possible ``length`` and ``size`` methods directly. The final attempt is +trying to get the value of the item's ``length`` attribute. If all +these attempts are unsuccessful, the keyword fails. + +Examples: +| ${length} = | Get Length | Hello, world! | | +| Should Be Equal As Integers | ${length} | 13 | +| @{list} = | Create List | Hello, | world! | +| ${length} = | Get Length | ${list} | | +| Should Be Equal As Integers | ${length} | 2 | + +See also `Length Should Be`, `Should Be Empty` and `Should Not Be +Empty`. + + + + + +name=None +all=False + +Returns the currently active instance of the specified test library. + +This keyword makes it easy for test libraries to interact with +other test libraries that have state. This is illustrated by +the Python example below: + +| from robot.libraries.BuiltIn import BuiltIn +| +| def title_should_start_with(expected): +| seleniumlib = BuiltIn().get_library_instance('SeleniumLibrary') +| title = seleniumlib.get_title() +| if not title.startswith(expected): +| raise AssertionError("Title '%s' did not start with '%s'" +| % (title, expected)) + +It is also possible to use this keyword in the test data and +pass the returned library instance to another keyword. If a +library is imported with a custom name, the ``name`` used to get +the instance must be that name and not the original library name. + +If the optional argument ``all`` is given a true value, then a +dictionary mapping all library names to instances will be returned. +This feature is new in Robot Framework 2.9.2. + +Example: +| &{all libs} = | Get library instance | all=True | + + + + + +format=timestamp +time_=NOW + +Returns the given time in the requested format. + +*NOTE:* DateTime library contains much more flexible keywords for +getting the current date and time and for date and time handling in +general. + +How time is returned is determined based on the given ``format`` +string as follows. Note that all checks are case-insensitive. + +1) If ``format`` contains the word ``epoch``, the time is returned + in seconds after the UNIX epoch (1970-01-01 00:00:00 UTC). + The return value is always an integer. + +2) If ``format`` contains any of the words ``year``, ``month``, + ``day``, ``hour``, ``min``, or ``sec``, only the selected parts are + returned. The order of the returned parts is always the one + in the previous sentence and the order of words in ``format`` + is not significant. The parts are returned as zero-padded + strings (e.g. May -> ``05``). + +3) Otherwise (and by default) the time is returned as a + timestamp string in the format ``2006-02-24 15:08:31``. + +By default this keyword returns the current local time, but +that can be altered using ``time`` argument as explained below. +Note that all checks involving strings are case-insensitive. + +1) If ``time`` is a number, or a string that can be converted to + a number, it is interpreted as seconds since the UNIX epoch. + This documentation was originally written about 1177654467 + seconds after the epoch. + +2) If ``time`` is a timestamp, that time will be used. Valid + timestamp formats are ``YYYY-MM-DD hh:mm:ss`` and + ``YYYYMMDD hhmmss``. + +3) If ``time`` is equal to ``NOW`` (default), the current local + time is used. + +4) If ``time`` is equal to ``UTC``, the current time in + [http://en.wikipedia.org/wiki/Coordinated_Universal_Time|UTC] + is used. + +5) If ``time`` is in the format like ``NOW - 1 day`` or ``UTC + 1 hour + 30 min``, the current local/UTC time plus/minus the time + specified with the time string is used. The time string format + is described in an appendix of Robot Framework User Guide. + +Examples (expecting the current local time is 2006-03-29 15:06:21): +| ${time} = | Get Time | | | | +| ${secs} = | Get Time | epoch | | | +| ${year} = | Get Time | return year | | | +| ${yyyy} | ${mm} | ${dd} = | Get Time | year,month,day | +| @{time} = | Get Time | year month day hour min sec | | | +| ${y} | ${s} = | Get Time | seconds and year | | +=> +| ${time} = '2006-03-29 15:06:21' +| ${secs} = 1143637581 +| ${year} = '2006' +| ${yyyy} = '2006', ${mm} = '03', ${dd} = '29' +| @{time} = ['2006', '03', '29', '15', '06', '21'] +| ${y} = '2006' +| ${s} = '21' + +Examples (expecting the current local time is 2006-03-29 15:06:21 and +UTC time is 2006-03-29 12:06:21): +| ${time} = | Get Time | | 1177654467 | # Time given as epoch seconds | +| ${secs} = | Get Time | sec | 2007-04-27 09:14:27 | # Time given as a timestamp | +| ${year} = | Get Time | year | NOW | # The local time of execution | +| @{time} = | Get Time | hour min sec | NOW + 1h 2min 3s | # 1h 2min 3s added to the local time | +| @{utc} = | Get Time | hour min sec | UTC | # The UTC time of execution | +| ${hour} = | Get Time | hour | UTC - 1 hour | # 1h subtracted from the UTC time | +=> +| ${time} = '2007-04-27 09:14:27' +| ${secs} = 27 +| ${year} = '2006' +| @{time} = ['16', '08', '24'] +| @{utc} = ['12', '06', '21'] +| ${hour} = '11' + + + + + +name +default=None + +Returns variable value or ``default`` if the variable does not exist. + +The name of the variable can be given either as a normal variable name +(e.g. ``${NAME}``) or in escaped format (e.g. ``\${NAME}``). Notice +that the former has some limitations explained in `Set Suite Variable`. + +Examples: +| ${x} = | Get Variable Value | ${a} | default | +| ${y} = | Get Variable Value | ${a} | ${b} | +| ${z} = | Get Variable Value | ${z} | | +=> +| ${x} gets value of ${a} if ${a} exists and string 'default' otherwise +| ${y} gets value of ${a} if ${a} exists and value of ${b} otherwise +| ${z} is set to Python None if it does not exist previously + +See `Set Variable If` for another keyword to set variables dynamically. + + + + + +no_decoration=False + +Returns a dictionary containing all variables in the current scope. + +Variables are returned as a special dictionary that allows accessing +variables in space, case, and underscore insensitive manner similarly +as accessing variables in the test data. This dictionary supports all +same operations as normal Python dictionaries and, for example, +Collections library can be used to access or modify it. Modifying the +returned dictionary has no effect on the variables available in the +current scope. + +By default variables are returned with ``${}``, ``@{}`` or ``&{}`` +decoration based on variable types. Giving a true value (see `Boolean +arguments`) to the optional argument ``no_decoration`` will return +the variables without the decoration. This option is new in Robot +Framework 2.9. + +Example: +| ${example_variable} = | Set Variable | example value | +| ${variables} = | Get Variables | | +| Dictionary Should Contain Key | ${variables} | \${example_variable} | +| Dictionary Should Contain Key | ${variables} | \${ExampleVariable} | +| Set To Dictionary | ${variables} | \${name} | value | +| Variable Should Not Exist | \${name} | | | +| ${no decoration} = | Get Variables | no_decoration=Yes | +| Dictionary Should Contain Key | ${no decoration} | example_variable | + + + + + +name +*args + +Imports a library with the given name and optional arguments. + +This functionality allows dynamic importing of libraries while tests +are running. That may be necessary, if the library itself is dynamic +and not yet available when test data is processed. In a normal case, +libraries should be imported using the Library setting in the Setting +table. + +This keyword supports importing libraries both using library +names and physical paths. When paths are used, they must be +given in absolute format or found from +[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#pythonpath-jythonpath-and-ironpythonpath| +search path]. Forward slashes can be used as path separators in all +operating systems. + +It is possible to pass arguments to the imported library and also +named argument syntax works if the library supports it. ``WITH NAME`` +syntax can be used to give a custom name to the imported library. + +Examples: +| Import Library | MyLibrary | +| Import Library | ${CURDIR}/../Library.py | arg1 | named=arg2 | +| Import Library | ${LIBRARIES}/Lib.java | arg | WITH NAME | JavaLib | + + + + + +path + +Imports a resource file with the given path. + +Resources imported with this keyword are set into the test suite scope +similarly when importing them in the Setting table using the Resource +setting. + +The given path must be absolute or found from +[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#pythonpath-jythonpath-and-ironpythonpath| +search path]. Forward slashes can be used as path separator regardless +the operating system. + +Examples: +| Import Resource | ${CURDIR}/resource.txt | +| Import Resource | ${CURDIR}/../resources/resource.html | +| Import Resource | found_from_pythonpath.robot | + + + + + +path +*args + +Imports a variable file with the given path and optional arguments. + +Variables imported with this keyword are set into the test suite scope +similarly when importing them in the Setting table using the Variables +setting. These variables override possible existing variables with +the same names. This functionality can thus be used to import new +variables, for example, for each test in a test suite. + +The given path must be absolute or found from +[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#pythonpath-jythonpath-and-ironpythonpath| +search path]. Forward slashes can be used as path separator regardless +the operating system. + +Examples: +| Import Variables | ${CURDIR}/variables.py | | | +| Import Variables | ${CURDIR}/../vars/env.py | arg1 | arg2 | +| Import Variables | file_from_pythonpath.py | | | + + + + + +name +msg=None + +Fails unless the given keyword exists in the current scope. + +Fails also if there are more than one keywords with the same name. +Works both with the short name (e.g. ``Log``) and the full name +(e.g. ``BuiltIn.Log``). + +The default error message can be overridden with the ``msg`` argument. + +See also `Variable Should Exist`. + + + + + +item +length +msg=None + +Verifies that the length of the given item is correct. + +The length of the item is got using the `Get Length` keyword. The +default error message can be overridden with the ``msg`` argument. + + + + + +message +level=INFO +html=False +console=False +repr=False + +Logs the given message with the given level. + +Valid levels are TRACE, DEBUG, INFO (default), HTML, WARN, and ERROR. +Messages below the current active log level are ignored. See +`Set Log Level` keyword and ``--loglevel`` command line option +for more details about setting the level. + +Messages logged with the WARN or ERROR levels will be automatically +visible also in the console and in the Test Execution Errors section +in the log file. + +Logging can be configured using optional ``html``, ``console`` and +``repr`` arguments. They are off by default, but can be enabled +by giving them a true value. See `Boolean arguments` section for more +information about true and false values. + +If the ``html`` argument is given a true value, the message will be +considered HTML and special characters such as ``<`` in it are not +escaped. For example, logging ``<img src="image.png">`` creates an +image when ``html`` is true, but otherwise the message is that exact +string. An alternative to using the ``html`` argument is using the HTML +pseudo log level. It logs the message as HTML using the INFO level. + +If the ``console`` argument is true, the message will be written to +the console where test execution was started from in addition to +the log file. This keyword always uses the standard output stream +and adds a newline after the written message. Use `Log To Console` +instead if either of these is undesirable, + +If the ``repr`` argument is true, the given item will be passed through +a custom version of Python's ``pprint.pformat()`` function before +logging it. This is useful, for example, when working with strings or +bytes containing invisible characters, or when working with nested data +structures. The custom version differs from the standard one so that it +omits the ``u`` prefix from Unicode strings and adds ``b`` prefix to +byte strings on Python 2. + +Examples: +| Log | Hello, world! | | | # Normal INFO message. | +| Log | Warning, world! | WARN | | # Warning. | +| Log | <b>Hello</b>, world! | html=yes | | # INFO message as HTML. | +| Log | <b>Hello</b>, world! | HTML | | # Same as above. | +| Log | <b>Hello</b>, world! | DEBUG | html=true | # DEBUG as HTML. | +| Log | Hello, console! | console=yes | | # Log also to the console. | +| Log | Hyvä \x00 | repr=yes | | # Log ``'Hyv\xe4 \x00'``. | + +See `Log Many` if you want to log multiple messages in one go, and +`Log To Console` if you only want to write to the console. + + + + + +*messages + +Logs the given messages as separate entries using the INFO level. + +Supports also logging list and dictionary variable items individually. + +Examples: +| Log Many | Hello | ${var} | +| Log Many | @{list} | &{dict} | + +See `Log` and `Log To Console` keywords if you want to use alternative +log levels, use HTML, or log to the console. + + + + + +message +stream=STDOUT +no_newline=False + +Logs the given message to the console. + +By default uses the standard output stream. Using the standard error +stream is possibly by giving the ``stream`` argument value ``STDERR`` +(case-insensitive). + +By default appends a newline to the logged message. This can be +disabled by giving the ``no_newline`` argument a true value (see +`Boolean arguments`). + +Examples: +| Log To Console | Hello, console! | | +| Log To Console | Hello, stderr! | STDERR | +| Log To Console | Message starts here and is | no_newline=true | +| Log To Console | continued without newline. | | + +This keyword does not log the message to the normal log file. Use +`Log` keyword, possibly with argument ``console``, if that is desired. + + + + + +level=INFO + +Logs all variables in the current scope with given log level. + + + + + + +Does absolutely nothing. + + + + + +message +*tags + +Skips rest of the current test, setup, or teardown with PASS status. + +This keyword can be used anywhere in the test data, but the place where +used affects the behavior: + +- When used in any setup or teardown (suite, test or keyword), passes + that setup or teardown. Possible keyword teardowns of the started + keywords are executed. Does not affect execution or statuses + otherwise. +- When used in a test outside setup or teardown, passes that particular + test case. Possible test and keyword teardowns are executed. + +Possible continuable failures before this keyword is used, as well as +failures in executed teardowns, will fail the execution. + +It is mandatory to give a message explaining why execution was passed. +By default the message is considered plain text, but starting it with +``*HTML*`` allows using HTML formatting. + +It is also possible to modify test tags passing tags after the message +similarly as with `Fail` keyword. Tags starting with a hyphen +(e.g. ``-regression``) are removed and others added. Tags are modified +using `Set Tags` and `Remove Tags` internally, and the semantics +setting and removing them are the same as with these keywords. + +Examples: +| Pass Execution | All features available in this version tested. | +| Pass Execution | Deprecated test. | deprecated | -regression | + +This keyword is typically wrapped to some other keyword, such as +`Run Keyword If`, to pass based on a condition. The most common case +can be handled also with `Pass Execution If`: + +| Run Keyword If | ${rc} < 0 | Pass Execution | Negative values are cool. | +| Pass Execution If | ${rc} < 0 | Negative values are cool. | + +Passing execution in the middle of a test, setup or teardown should be +used with care. In the worst case it leads to tests that skip all the +parts that could actually uncover problems in the tested application. +In cases where execution cannot continue do to external factors, +it is often safer to fail the test case and make it non-critical. + + + + + +condition +message +*tags + +Conditionally skips rest of the current test, setup, or teardown with PASS status. + +A wrapper for `Pass Execution` to skip rest of the current test, +setup or teardown based the given ``condition``. The condition is +evaluated similarly as with `Should Be True` keyword, and ``message`` +and ``*tags`` have same semantics as with `Pass Execution`. + +Example: +| :FOR | ${var} | IN | @{VALUES} | +| | Pass Execution If | '${var}' == 'EXPECTED' | Correct value was found | +| | Do Something | ${var} | + + + + + +*patterns + +Returns each argument string escaped for use as a regular expression. + +This keyword can be used to escape strings to be used with +`Should Match Regexp` and `Should Not Match Regexp` keywords. + +Escaping is done with Python's ``re.escape()`` function. + +Examples: +| ${escaped} = | Regexp Escape | ${original} | +| @{strings} = | Regexp Escape | @{strings} | + + + + + +name_or_instance + +Rechecks what keywords the specified library provides. + +Can be called explicitly in the test data or by a library itself +when keywords it provides have changed. + +The library can be specified by its name or as the active instance of +the library. The latter is especially useful if the library itself +calls this keyword as a method. + +New in Robot Framework 2.9. + + + + + +*tags + +Removes given ``tags`` from the current test or all tests in a suite. + +Tags can be given exactly or using a pattern with ``*``, ``?`` and +``[chars]`` acting as wildcards. See the `Glob patterns` section +for more information. + +This keyword can affect either one test case or all test cases in a +test suite similarly as `Set Tags` keyword. + +The current tags are available as a built-in variable ``@{TEST TAGS}``. + +Example: +| Remove Tags | mytag | something-* | ?ython | + +See `Set Tags` if you want to add certain tags and `Fail` if you want +to fail the test case after setting and/or removing tags. + + + + + +repeat +name +*args + +Executes the specified keyword multiple times. + +``name`` and ``args`` define the keyword that is executed similarly as +with `Run Keyword`. ``repeat`` specifies how many times (as a count) or +how long time (as a timeout) the keyword should be executed. + +If ``repeat`` is given as count, it specifies how many times the +keyword should be executed. ``repeat`` can be given as an integer or +as a string that can be converted to an integer. If it is a string, +it can have postfix ``times`` or ``x`` (case and space insensitive) +to make the expression more explicit. + +If ``repeat`` is given as timeout, it must be in Robot Framework's +time format (e.g. ``1 minute``, ``2 min 3 s``). Using a number alone +(e.g. ``1`` or ``1.5``) does not work in this context. + +If ``repeat`` is zero or negative, the keyword is not executed at +all. This keyword fails immediately if any of the execution +rounds fails. + +Examples: +| Repeat Keyword | 5 times | Go to Previous Page | +| Repeat Keyword | ${var} | Some Keyword | arg1 | arg2 | +| Repeat Keyword | 2 minutes | Some Keyword | arg1 | arg2 | + +Specifying ``repeat`` as a timeout is new in Robot Framework 3.0. + + + + + +text + +Replaces variables in the given text with their current values. + +If the text contains undefined variables, this keyword fails. +If the given ``text`` contains only a single variable, its value is +returned as-is and it can be any object. Otherwise this keyword +always returns a string. + +Example: + +The file ``template.txt`` contains ``Hello ${NAME}!`` and variable +``${NAME}`` has the value ``Robot``. + +| ${template} = | Get File | ${CURDIR}/template.txt | +| ${message} = | Replace Variables | ${template} | +| Should Be Equal | ${message} | Hello Robot! | + + + + + +*return_values + +Returns from the enclosing user keyword. + +This keyword can be used to return from a user keyword with PASS status +without executing it fully. It is also possible to return values +similarly as with the ``[Return]`` setting. For more detailed information +about working with the return values, see the User Guide. + +This keyword is typically wrapped to some other keyword, such as +`Run Keyword If` or `Run Keyword If Test Passed`, to return based +on a condition: + +| Run Keyword If | ${rc} < 0 | Return From Keyword | +| Run Keyword If Test Passed | Return From Keyword | + +It is possible to use this keyword to return from a keyword also inside +a for loop. That, as well as returning values, is demonstrated by the +`Find Index` keyword in the following somewhat advanced example. +Notice that it is often a good idea to move this kind of complicated +logic into a test library. + +| ***** Variables ***** +| @{LIST} = foo baz +| +| ***** Test Cases ***** +| Example +| ${index} = Find Index baz @{LIST} +| Should Be Equal ${index} ${1} +| ${index} = Find Index non existing @{LIST} +| Should Be Equal ${index} ${-1} +| +| ***** Keywords ***** +| Find Index +| [Arguments] ${element} @{items} +| ${index} = Set Variable ${0} +| :FOR ${item} IN @{items} +| \ Run Keyword If '${item}' == '${element}' Return From Keyword ${index} +| \ ${index} = Set Variable ${index + 1} +| Return From Keyword ${-1} # Also [Return] would work here. + +The most common use case, returning based on an expression, can be +accomplished directly with `Return From Keyword If`. See also +`Run Keyword And Return` and `Run Keyword And Return If`. + + + + + +condition +*return_values + +Returns from the enclosing user keyword if ``condition`` is true. + +A wrapper for `Return From Keyword` to return based on the given +condition. The condition is evaluated using the same semantics as +with `Should Be True` keyword. + +Given the same example as in `Return From Keyword`, we can rewrite the +`Find Index` keyword as follows: + +| ***** Keywords ***** +| Find Index +| [Arguments] ${element} @{items} +| ${index} = Set Variable ${0} +| :FOR ${item} IN @{items} +| \ Return From Keyword If '${item}' == '${element}' ${index} +| \ ${index} = Set Variable ${index + 1} +| Return From Keyword ${-1} # Also [Return] would work here. + +See also `Run Keyword And Return` and `Run Keyword And Return If`. + + + + + +name +*args + +Executes the given keyword with the given arguments. + +Because the name of the keyword to execute is given as an argument, it +can be a variable and thus set dynamically, e.g. from a return value of +another keyword or from the command line. + + + + + +name +*args + +Runs the keyword and continues execution even if a failure occurs. + +The keyword name and arguments work as with `Run Keyword`. + +Example: +| Run Keyword And Continue On Failure | Fail | This is a stupid example | +| Log | This keyword is executed | + +The execution is not continued if the failure is caused by invalid syntax, +timeout, or fatal exception. +Since Robot Framework 2.9, variable errors are caught by this keyword. + + + + + +expected_error +name +*args + +Runs the keyword and checks that the expected error occurred. + +The keyword to execute and its arguments are specified using ``name`` +and ``*args`` exactly like with `Run Keyword`. + +The expected error must be given in the same format as in Robot +Framework reports. By default it is interpreted as a glob pattern +with ``*``, ``?`` and ``[chars]`` as wildcards, but starting from +Robot Framework 3.1 that can be changed by using various prefixes +explained in the table below. Prefixes are case-sensitive and they +must be separated from the actual message with a colon and an +optional space like ``PREFIX: Message`` or ``PREFIX:Message``. + +| = Prefix = | = Explanation = | +| ``EQUALS`` | Exact match. Especially useful if the error contains glob wildcards. | +| ``STARTS`` | Error must start with the specified error. | +| ``REGEXP`` | Regular expression match. | +| ``GLOB`` | Same as the default behavior. | + +See the `Pattern matching` section for more information about glob +patterns and regular expressions. + +If the expected error occurs, the error message is returned and it can +be further processed or tested if needed. If there is no error, or the +error does not match the expected error, this keyword fails. + +Examples: +| Run Keyword And Expect Error | My error | Keyword | arg | +| Run Keyword And Expect Error | ValueError: * | Some Keyword | +| Run Keyword And Expect Error | STARTS: ValueError: | Some Keyword | +| Run Keyword And Expect Error | EQUALS:No match for '//input[@type="text"]' | +| ... | Find Element | //input[@type="text"] | +| ${msg} = | Run Keyword And Expect Error | * | +| ... | Keyword | arg1 | arg2 | +| Log To Console | ${msg} | + +Errors caused by invalid syntax, timeouts, or fatal exceptions are not +caught by this keyword. +Since Robot Framework 2.9, variable errors are caught by this keyword. + + + + + +name +*args + +Runs the given keyword with the given arguments and ignores possible error. + +This keyword returns two values, so that the first is either string +``PASS`` or ``FAIL``, depending on the status of the executed keyword. +The second value is either the return value of the keyword or the +received error message. See `Run Keyword And Return Status` If you are +only interested in the execution status. + +The keyword name and arguments work as in `Run Keyword`. See +`Run Keyword If` for a usage example. + +Errors caused by invalid syntax, timeouts, or fatal exceptions are not +caught by this keyword. Otherwise this keyword itself never fails. +Since Robot Framework 2.9, variable errors are caught by this keyword. + + + + + +name +*args + +Runs the specified keyword and returns from the enclosing user keyword. + +The keyword to execute is defined with ``name`` and ``*args`` exactly +like with `Run Keyword`. After running the keyword, returns from the +enclosing user keyword and passes possible return value from the +executed keyword further. Returning from a keyword has exactly same +semantics as with `Return From Keyword`. + +Example: +| `Run Keyword And Return` | `My Keyword` | arg1 | arg2 | +| # Above is equivalent to: | +| ${result} = | `My Keyword` | arg1 | arg2 | +| `Return From Keyword` | ${result} | | | + +Use `Run Keyword And Return If` if you want to run keyword and return +based on a condition. + + + + + +condition +name +*args + +Runs the specified keyword and returns from the enclosing user keyword. + +A wrapper for `Run Keyword And Return` to run and return based on +the given ``condition``. The condition is evaluated using the same +semantics as with `Should Be True` keyword. + +Example: +| `Run Keyword And Return If` | ${rc} > 0 | `My Keyword` | arg1 | arg2 | +| # Above is equivalent to: | +| `Run Keyword If` | ${rc} > 0 | `Run Keyword And Return` | `My Keyword ` | arg1 | arg2 | + +Use `Return From Keyword If` if you want to return a certain value +based on a condition. + + + + + +name +*args + +Runs the given keyword with given arguments and returns the status as a Boolean value. + +This keyword returns Boolean ``True`` if the keyword that is executed +succeeds and ``False`` if it fails. This is useful, for example, in +combination with `Run Keyword If`. If you are interested in the error +message or return value, use `Run Keyword And Ignore Error` instead. + +The keyword name and arguments work as in `Run Keyword`. + +Example: +| ${passed} = | `Run Keyword And Return Status` | Keyword | args | +| `Run Keyword If` | ${passed} | Another keyword | + +Errors caused by invalid syntax, timeouts, or fatal exceptions are not +caught by this keyword. Otherwise this keyword itself never fails. + + + + + +condition +name +*args + +Runs the given keyword with the given arguments, if ``condition`` is true. + +The given ``condition`` is evaluated in Python as explained in +`Evaluating expressions`, and ``name`` and ``*args`` have same +semantics as with `Run Keyword`. + +Example, a simple if/else construct: +| ${status} | ${value} = | `Run Keyword And Ignore Error` | `My Keyword` | +| `Run Keyword If` | '${status}' == 'PASS' | `Some Action` | arg | +| `Run Keyword Unless` | '${status}' == 'PASS' | `Another Action` | + +In this example, only either `Some Action` or `Another Action` is +executed, based on the status of `My Keyword`. Instead of `Run Keyword +And Ignore Error` you can also use `Run Keyword And Return Status`. + +Variables used like ``${variable}``, as in the examples above, are +replaced in the expression before evaluation. Variables are also +available in the evaluation namespace and can be accessed using special +syntax ``$variable``. This is a new feature in Robot Framework 2.9 +and it is explained more thoroughly in `Evaluating expressions`. + +Example: +| `Run Keyword If` | $result is None or $result == 'FAIL' | `Keyword` | + +This keyword supports also optional ELSE and ELSE IF branches. Both +of them are defined in ``*args`` and must use exactly format ``ELSE`` +or ``ELSE IF``, respectively. ELSE branches must contain first the +name of the keyword to execute and then its possible arguments. ELSE +IF branches must first contain a condition, like the first argument +to this keyword, and then the keyword to execute and its possible +arguments. It is possible to have ELSE branch after ELSE IF and to +have multiple ELSE IF branches. Nested `Run Keyword If` usage is not +supported when using ELSE and/or ELSE IF branches. + +Given previous example, if/else construct can also be created like this: +| ${status} | ${value} = | `Run Keyword And Ignore Error` | `My Keyword` | +| `Run Keyword If` | '${status}' == 'PASS' | `Some Action` | arg | ELSE | `Another Action` | + +The return value of this keyword is the return value of the actually +executed keyword or Python ``None`` if no keyword was executed (i.e. +if ``condition`` was false). Hence, it is recommended to use ELSE +and/or ELSE IF branches to conditionally assign return values from +keyword to variables (see `Set Variable If` if you need to set fixed +values conditionally). This is illustrated by the example below: + +| ${var1} = | `Run Keyword If` | ${rc} == 0 | `Some keyword returning a value` | +| ... | ELSE IF | 0 < ${rc} < 42 | `Another keyword` | +| ... | ELSE IF | ${rc} < 0 | `Another keyword with args` | ${rc} | arg2 | +| ... | ELSE | `Final keyword to handle abnormal cases` | ${rc} | +| ${var2} = | `Run Keyword If` | ${condition} | `Some keyword` | + +In this example, ${var2} will be set to ``None`` if ${condition} is +false. + +Notice that ``ELSE`` and ``ELSE IF`` control words must be used +explicitly and thus cannot come from variables. If you need to use +literal ``ELSE`` and ``ELSE IF`` strings as arguments, you can escape +them with a backslash like ``\ELSE`` and ``\ELSE IF``. + +Python's [http://docs.python.org/library/os.html|os] and +[http://docs.python.org/library/sys.html|sys] modules are +automatically imported when evaluating the ``condition``. +Attributes they contain can thus be used in the condition: + +| `Run Keyword If` | os.sep == '/' | `Unix Keyword` | +| ... | ELSE IF | sys.platform.startswith('java') | `Jython Keyword` | +| ... | ELSE | `Windows Keyword` | + + + + + +name +*args + +Runs the given keyword with the given arguments, if all critical tests passed. + +This keyword can only be used in suite teardown. Trying to use it in +any other place will result in an error. + +Otherwise, this keyword works exactly like `Run Keyword`, see its +documentation for more details. + + + + + +name +*args + +Runs the given keyword with the given arguments, if all tests passed. + +This keyword can only be used in a suite teardown. Trying to use it +anywhere else results in an error. + +Otherwise, this keyword works exactly like `Run Keyword`, see its +documentation for more details. + + + + + +name +*args + +Runs the given keyword with the given arguments, if any critical tests failed. + +This keyword can only be used in a suite teardown. Trying to use it +anywhere else results in an error. + +Otherwise, this keyword works exactly like `Run Keyword`, see its +documentation for more details. + + + + + +name +*args + +Runs the given keyword with the given arguments, if one or more tests failed. + +This keyword can only be used in a suite teardown. Trying to use it +anywhere else results in an error. + +Otherwise, this keyword works exactly like `Run Keyword`, see its +documentation for more details. + + + + + +name +*args + +Runs the given keyword with the given arguments, if the test failed. + +This keyword can only be used in a test teardown. Trying to use it +anywhere else results in an error. + +Otherwise, this keyword works exactly like `Run Keyword`, see its +documentation for more details. + +Prior to Robot Framework 2.9 failures in test teardown itself were +not detected by this keyword. + + + + + +name +*args + +Runs the given keyword with the given arguments, if the test passed. + +This keyword can only be used in a test teardown. Trying to use it +anywhere else results in an error. + +Otherwise, this keyword works exactly like `Run Keyword`, see its +documentation for more details. + +Prior to Robot Framework 2.9 failures in test teardown itself were +not detected by this keyword. + + + + + +name +*args + +Runs the given keyword if either a test or a keyword timeout has occurred. + +This keyword can only be used in a test teardown. Trying to use it +anywhere else results in an error. + +Otherwise, this keyword works exactly like `Run Keyword`, see its +documentation for more details. + + + + + +condition +name +*args + +Runs the given keyword with the given arguments if ``condition`` is false. + +See `Run Keyword If` for more information and an example. Notice that +this keyword does not support ``ELSE`` or ``ELSE IF`` branches like +`Run Keyword If` does, though. + + + + + +*keywords + +Executes all the given keywords in a sequence. + +This keyword is mainly useful in setups and teardowns when they need +to take care of multiple actions and creating a new higher level user +keyword would be an overkill. + +By default all arguments are expected to be keywords to be executed. + +Examples: +| `Run Keywords` | `Initialize database` | `Start servers` | `Clear logs` | +| `Run Keywords` | ${KW 1} | ${KW 2} | +| `Run Keywords` | @{KEYWORDS} | + +Keywords can also be run with arguments using upper case ``AND`` as +a separator between keywords. The keywords are executed so that the +first argument is the first keyword and proceeding arguments until +the first ``AND`` are arguments to it. First argument after the first +``AND`` is the second keyword and proceeding arguments until the next +``AND`` are its arguments. And so on. + +Examples: +| `Run Keywords` | `Initialize database` | db1 | AND | `Start servers` | server1 | server2 | +| `Run Keywords` | `Initialize database` | ${DB NAME} | AND | `Start servers` | @{SERVERS} | AND | `Clear logs` | +| `Run Keywords` | ${KW} | AND | @{KW WITH ARGS} | + +Notice that the ``AND`` control argument must be used explicitly and +cannot itself come from a variable. If you need to use literal ``AND`` +string as argument, you can either use variables or escape it with +a backslash like ``\AND``. + + + + + +name +*values + +Makes a variable available globally in all tests and suites. + +Variables set with this keyword are globally available in all +subsequent test suites, test cases and user keywords. Also variables +in variable tables are overridden. Variables assigned locally based +on keyword return values or by using `Set Test Variable` and +`Set Suite Variable` override these variables in that scope, but +the global value is not changed in those cases. + +In practice setting variables with this keyword has the same effect +as using command line options ``--variable`` and ``--variablefile``. +Because this keyword can change variables everywhere, it should be +used with care. + +See `Set Suite Variable` for more information and examples. + + + + + +*search_order + +Sets the resolution order to use when a name matches multiple keywords. + +The library search order is used to resolve conflicts when a keyword +name in the test data matches multiple keywords. The first library +(or resource, see below) containing the keyword is selected and that +keyword implementation used. If the keyword is not found from any library +(or resource), test executing fails the same way as when the search +order is not set. + +When this keyword is used, there is no need to use the long +``LibraryName.Keyword Name`` notation. For example, instead of +having + +| MyLibrary.Keyword | arg | +| MyLibrary.Another Keyword | +| MyLibrary.Keyword | xxx | + +you can have + +| Set Library Search Order | MyLibrary | +| Keyword | arg | +| Another Keyword | +| Keyword | xxx | + +This keyword can be used also to set the order of keywords in different +resource files. In this case resource names must be given without paths +or extensions like: + +| Set Library Search Order | resource | another_resource | + +*NOTE:* +- The search order is valid only in the suite where this keywords is used. +- Keywords in resources always have higher priority than + keywords in libraries regardless the search order. +- The old order is returned and can be used to reset the search order later. +- Library and resource names in the search order are both case and space + insensitive. + + + + + +level + +Sets the log threshold to the specified level and returns the old level. + +Messages below the level will not logged. The default logging level is +INFO, but it can be overridden with the command line option +``--loglevel``. + +The available levels: TRACE, DEBUG, INFO (default), WARN, ERROR and NONE (no +logging). + + + + + +doc +append=False +top=False + +Sets documentation for the current test suite. + +By default the possible existing documentation is overwritten, but +this can be changed using the optional ``append`` argument similarly +as with `Set Test Message` keyword. + +This keyword sets the documentation of the current suite by default. +If the optional ``top`` argument is given a true value (see `Boolean +arguments`), the documentation of the top level suite is altered +instead. + +The documentation of the current suite is available as a built-in +variable ``${SUITE DOCUMENTATION}``. + + + + + +name +value +append=False +top=False + +Sets metadata for the current test suite. + +By default possible existing metadata values are overwritten, but +this can be changed using the optional ``append`` argument similarly +as with `Set Test Message` keyword. + +This keyword sets the metadata of the current suite by default. +If the optional ``top`` argument is given a true value (see `Boolean +arguments`), the metadata of the top level suite is altered instead. + +The metadata of the current suite is available as a built-in variable +``${SUITE METADATA}`` in a Python dictionary. Notice that modifying this +variable directly has no effect on the actual metadata the suite has. + + + + + +name +*values + +Makes a variable available everywhere within the scope of the current suite. + +Variables set with this keyword are available everywhere within the +scope of the currently executed test suite. Setting variables with this +keyword thus has the same effect as creating them using the Variable +table in the test data file or importing them from variable files. + +Possible child test suites do not see variables set with this keyword +by default. Starting from Robot Framework 2.9, that can be controlled +by using ``children=<option>`` as the last argument. If the specified +``<option>`` is a non-empty string or any other value considered true +in Python, the variable is set also to the child suites. Parent and +sibling suites will never see variables set with this keyword. + +The name of the variable can be given either as a normal variable name +(e.g. ``${NAME}``) or in escaped format as ``\${NAME}`` or ``$NAME``. +Variable value can be given using the same syntax as when variables +are created in the Variable table. + +If a variable already exists within the new scope, its value will be +overwritten. Otherwise a new variable is created. If a variable already +exists within the current scope, the value can be left empty and the +variable within the new scope gets the value within the current scope. + +Examples: +| Set Suite Variable | ${SCALAR} | Hello, world! | +| Set Suite Variable | ${SCALAR} | Hello, world! | children=true | +| Set Suite Variable | @{LIST} | First item | Second item | +| Set Suite Variable | &{DICT} | key=value | foo=bar | +| ${ID} = | Get ID | +| Set Suite Variable | ${ID} | + +To override an existing value with an empty value, use built-in +variables ``${EMPTY}``, ``@{EMPTY}`` or ``&{EMPTY}``: + +| Set Suite Variable | ${SCALAR} | ${EMPTY} | +| Set Suite Variable | @{LIST} | @{EMPTY} | +| Set Suite Variable | &{DICT} | &{EMPTY} | + +*NOTE:* If the variable has value which itself is a variable (escaped +or not), you must always use the escaped format to set the variable: + +Example: +| ${NAME} = | Set Variable | \${var} | +| Set Suite Variable | ${NAME} | value | # Sets variable ${var} | +| Set Suite Variable | \${NAME} | value | # Sets variable ${NAME} | + +This limitation applies also to `Set Test Variable`, `Set Global +Variable`, `Variable Should Exist`, `Variable Should Not Exist` and +`Get Variable Value` keywords. + + + + + +*tags + +Adds given ``tags`` for the current test or all tests in a suite. + +When this keyword is used inside a test case, that test gets +the specified tags and other tests are not affected. + +If this keyword is used in a suite setup, all test cases in +that suite, recursively, gets the given tags. It is a failure +to use this keyword in a suite teardown. + +The current tags are available as a built-in variable ``@{TEST TAGS}``. + +See `Remove Tags` if you want to remove certain tags and `Fail` if +you want to fail the test case after setting and/or removing tags. + + + + + +name +*values + +Makes a variable available everywhere within the scope of the current task. + +This is an alias for `Set Test Variable` that is more applicable when +creating tasks, not tests. New in RF 3.1. + + + + + +doc +append=False + +Sets documentation for the current test case. + +By default the possible existing documentation is overwritten, but +this can be changed using the optional ``append`` argument similarly +as with `Set Test Message` keyword. + +The current test documentation is available as a built-in variable +``${TEST DOCUMENTATION}``. This keyword can not be used in suite +setup or suite teardown. + + + + + +message +append=False + +Sets message for the current test case. + +If the optional ``append`` argument is given a true value (see `Boolean +arguments`), the given ``message`` is added after the possible earlier +message by joining the messages with a space. + +In test teardown this keyword can alter the possible failure message, +but otherwise failures override messages set by this keyword. Notice +that in teardown the message is available as a built-in variable +``${TEST MESSAGE}``. + +It is possible to use HTML format in the message by starting the message +with ``*HTML*``. + +Examples: +| Set Test Message | My message | | +| Set Test Message | is continued. | append=yes | +| Should Be Equal | ${TEST MESSAGE} | My message is continued. | +| Set Test Message | `*`HTML`*` <b>Hello!</b> | | + +This keyword can not be used in suite setup or suite teardown. + + + + + +name +*values + +Makes a variable available everywhere within the scope of the current test. + +Variables set with this keyword are available everywhere within the +scope of the currently executed test case. For example, if you set a +variable in a user keyword, it is available both in the test case level +and also in all other user keywords used in the current test. Other +test cases will not see variables set with this keyword. + +See `Set Suite Variable` for more information and examples. + + + + + +*values + +Returns the given values which can then be assigned to a variables. + +This keyword is mainly used for setting scalar variables. +Additionally it can be used for converting a scalar variable +containing a list to a list variable or to multiple scalar variables. +It is recommended to use `Create List` when creating new lists. + +Examples: +| ${hi} = | Set Variable | Hello, world! | +| ${hi2} = | Set Variable | I said: ${hi} | +| ${var1} | ${var2} = | Set Variable | Hello | world | +| @{list} = | Set Variable | ${list with some items} | +| ${item1} | ${item2} = | Set Variable | ${list with 2 items} | + +Variables created with this keyword are available only in the +scope where they are created. See `Set Global Variable`, +`Set Test Variable` and `Set Suite Variable` for information on how to +set variables so that they are available also in a larger scope. + + + + + +condition +*values + +Sets variable based on the given condition. + +The basic usage is giving a condition and two values. The +given condition is first evaluated the same way as with the +`Should Be True` keyword. If the condition is true, then the +first value is returned, and otherwise the second value is +returned. The second value can also be omitted, in which case +it has a default value None. This usage is illustrated in the +examples below, where ``${rc}`` is assumed to be zero. + +| ${var1} = | Set Variable If | ${rc} == 0 | zero | nonzero | +| ${var2} = | Set Variable If | ${rc} > 0 | value1 | value2 | +| ${var3} = | Set Variable If | ${rc} > 0 | whatever | | +=> +| ${var1} = 'zero' +| ${var2} = 'value2' +| ${var3} = None + +It is also possible to have 'else if' support by replacing the +second value with another condition, and having two new values +after it. If the first condition is not true, the second is +evaluated and one of the values after it is returned based on +its truth value. This can be continued by adding more +conditions without a limit. + +| ${var} = | Set Variable If | ${rc} == 0 | zero | +| ... | ${rc} > 0 | greater than zero | less then zero | +| | +| ${var} = | Set Variable If | +| ... | ${rc} == 0 | zero | +| ... | ${rc} == 1 | one | +| ... | ${rc} == 2 | two | +| ... | ${rc} > 2 | greater than two | +| ... | ${rc} < 0 | less than zero | + +Use `Get Variable Value` if you need to set variables +dynamically based on whether a variable exist or not. + + + + + +item +msg=None + +Verifies that the given item is empty. + +The length of the item is got using the `Get Length` keyword. The +default error message can be overridden with the ``msg`` argument. + + + + + +first +second +msg=None +values=True +ignore_case=False + +Fails if the given objects are unequal. + +Optional ``msg`` and ``values`` arguments specify how to construct +the error message if this keyword fails: + +- If ``msg`` is not given, the error message is ``<first> != <second>``. +- If ``msg`` is given and ``values`` gets a true value (default), + the error message is ``<msg>: <first> != <second>``. +- If ``msg`` is given and ``values`` gets a false value, the error + message is simply ``<msg>``. See `Boolean arguments` for more details + about using false values. + +If ``ignore_case`` is given a true value (see `Boolean arguments`) and +arguments are strings, it indicates that comparison should be +case-insensitive. New option in Robot Framework 3.0.1. + +If both arguments are multiline strings, the comparison is done using +`multiline string comparisons`. + +Examples: +| Should Be Equal | ${x} | expected | +| Should Be Equal | ${x} | expected | Custom error message | +| Should Be Equal | ${x} | expected | Custom message | values=False | +| Should Be Equal | ${x} | expected | ignore_case=True | + + + + + +first +second +msg=None +values=True +base=None + +Fails if objects are unequal after converting them to integers. + +See `Convert To Integer` for information how to convert integers from +other bases than 10 using ``base`` argument or ``0b/0o/0x`` prefixes. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``. + +Examples: +| Should Be Equal As Integers | 42 | ${42} | Error message | +| Should Be Equal As Integers | ABCD | abcd | base=16 | +| Should Be Equal As Integers | 0b1011 | 11 | + + + + + +first +second +msg=None +values=True +precision=6 + +Fails if objects are unequal after converting them to real numbers. + +The conversion is done with `Convert To Number` keyword using the +given ``precision``. + +Examples: +| Should Be Equal As Numbers | ${x} | 1.1 | | # Passes if ${x} is 1.1 | +| Should Be Equal As Numbers | 1.123 | 1.1 | precision=1 | # Passes | +| Should Be Equal As Numbers | 1.123 | 1.4 | precision=0 | # Passes | +| Should Be Equal As Numbers | 112.3 | 75 | precision=-2 | # Passes | + +As discussed in the documentation of `Convert To Number`, machines +generally cannot store floating point numbers accurately. Because of +this limitation, comparing floats for equality is problematic and +a correct approach to use depends on the context. This keyword uses +a very naive approach of rounding the numbers before comparing them, +which is both prone to rounding errors and does not work very well if +numbers are really big or small. For more information about comparing +floats, and ideas on how to implement your own context specific +comparison algorithm, see +http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/. + +If you want to avoid possible problems with floating point numbers, +you can implement custom keywords using Python's +[http://docs.python.org/library/decimal.html|decimal] or +[http://docs.python.org/library/fractions.html|fractions] modules. + +See `Should Not Be Equal As Numbers` for a negative version of this +keyword and `Should Be Equal` for an explanation on how to override +the default error message with ``msg`` and ``values``. + + + + + +first +second +msg=None +values=True +ignore_case=False + +Fails if objects are unequal after converting them to strings. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``. + +If ``ignore_case`` is given a true value (see `Boolean arguments`), it +indicates that comparison should be case-insensitive. New option in +Robot Framework 3.0.1. + +If both arguments are multiline strings, the comparison is done using +`multiline string comparisons`. + + + + + +condition +msg=None + +Fails if the given condition is not true. + +If ``condition`` is a string (e.g. ``${rc} < 10``), it is evaluated as +a Python expression as explained in `Evaluating expressions` and the +keyword status is decided based on the result. If a non-string item is +given, the status is got directly from its +[http://docs.python.org/library/stdtypes.html#truth|truth value]. + +The default error message (``<condition> should be true``) is not very +informative, but it can be overridden with the ``msg`` argument. + +Examples: +| Should Be True | ${rc} < 10 | +| Should Be True | '${status}' == 'PASS' | # Strings must be quoted | +| Should Be True | ${number} | # Passes if ${number} is not zero | +| Should Be True | ${list} | # Passes if ${list} is not empty | + +Variables used like ``${variable}``, as in the examples above, are +replaced in the expression before evaluation. Variables are also +available in the evaluation namespace and can be accessed using special +syntax ``$variable``. This is a new feature in Robot Framework 2.9 +and it is explained more thoroughly in `Evaluating expressions`. + +Examples: +| Should Be True | $rc < 10 | +| Should Be True | $status == 'PASS' | # Expected string must be quoted | + +`Should Be True` automatically imports Python's +[http://docs.python.org/library/os.html|os] and +[http://docs.python.org/library/sys.html|sys] modules that contain +several useful attributes: + +| Should Be True | os.linesep == '\n' | # Unixy | +| Should Be True | os.linesep == '\r\n' | # Windows | +| Should Be True | sys.platform == 'darwin' | # OS X | +| Should Be True | sys.platform.startswith('java') | # Jython | + + + + + +container +item +msg=None +values=True +ignore_case=False + +Fails if ``container`` does not contain ``item`` one or more times. + +Works with strings, lists, and anything that supports Python's ``in`` +operator. + +See `Should Be Equal` for an explanation on how to override the default +error message with arguments ``msg`` and ``values``. + +If ``ignore_case`` is given a true value (see `Boolean arguments`) and +compared items are strings, it indicates that comparison should be +case-insensitive. If the ``container`` is a list-like object, string +items in it are compared case-insensitively. New option in Robot +Framework 3.0.1. + +Examples: +| Should Contain | ${output} | PASS | +| Should Contain | ${some list} | value | msg=Failure! | values=False | +| Should Contain | ${some list} | value | ignore_case=True | + + + + + +container +*items +**configuration + +Fails if ``container`` does not contain any of the ``*items``. + +Works with strings, lists, and anything that supports Python's ``in`` +operator. + +Supports additional configuration parameters ``msg``, ``values`` +and ``ignore_case``, which have exactly the same semantics as arguments +with same names have with `Should Contain`. These arguments must +always be given using ``name=value`` syntax after all ``items``. + +Note that possible equal signs in ``items`` must be escaped with +a backslash (e.g. ``foo\=bar``) to avoid them to be passed in +as ``**configuration``. + +Examples: +| Should Contain Any | ${string} | substring 1 | substring 2 | +| Should Contain Any | ${list} | item 1 | item 2 | item 3 | +| Should Contain Any | ${list} | item 1 | item 2 | item 3 | ignore_case=True | +| Should Contain Any | ${list} | @{items} | msg=Custom message | values=False | + +New in Robot Framework 3.0.1. + + + + + +item1 +item2 +count +msg=None +ignore_case=False + +Fails if ``item1`` does not contain ``item2`` ``count`` times. + +Works with strings, lists and all objects that `Get Count` works +with. The default error message can be overridden with ``msg`` and +the actual count is always logged. + +If ``ignore_case`` is given a true value (see `Boolean arguments`) and +compared items are strings, it indicates that comparison should be +case-insensitive. If the ``item1`` is a list-like object, string +items in it are compared case-insensitively. New option in Robot +Framework 3.0.1. + +Examples: +| Should Contain X Times | ${output} | hello | 2 | +| Should Contain X Times | ${some list} | value | 3 | ignore_case=True | + + + + + +str1 +str2 +msg=None +values=True +ignore_case=False + +Fails if the string ``str1`` does not end with the string ``str2``. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``, as well as for semantics +of the ``ignore_case`` option. + + + + + +string +pattern +msg=None +values=True +ignore_case=False + +Fails if the given ``string`` does not match the given ``pattern``. + +Pattern matching is similar as matching files in a shell with +``*``, ``?`` and ``[chars]`` acting as wildcards. See the +`Glob patterns` section for more information. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``, as well as for semantics +of the ``ignore_case`` option. + + + + + +string +pattern +msg=None +values=True + +Fails if ``string`` does not match ``pattern`` as a regular expression. + +See the `Regular expressions` section for more information about +regular expressions and how to use then in Robot Framework test data. + +Notice that the given pattern does not need to match the whole string. +For example, the pattern ``ello`` matches the string ``Hello world!``. +If a full match is needed, the ``^`` and ``$`` characters can be used +to denote the beginning and end of the string, respectively. +For example, ``^ello$`` only matches the exact string ``ello``. + +Possible flags altering how the expression is parsed (e.g. +``re.IGNORECASE``, ``re.MULTILINE``) must be embedded to the +pattern like ``(?im)pattern``. The most useful flags are ``i`` +(case-insensitive), ``m`` (multiline mode), ``s`` (dotall mode) +and ``x`` (verbose). + +If this keyword passes, it returns the portion of the string that +matched the pattern. Additionally, the possible captured groups are +returned. + +See the `Should Be Equal` keyword for an explanation on how to override +the default error message with the ``msg`` and ``values`` arguments. + +Examples: +| Should Match Regexp | ${output} | \\d{6} | # Output contains six numbers | +| Should Match Regexp | ${output} | ^\\d{6}$ | # Six numbers and nothing more | +| ${ret} = | Should Match Regexp | Foo: 42 | (?i)foo: \\d+ | +| ${match} | ${group1} | ${group2} = | +| ... | Should Match Regexp | Bar: 43 | (Foo|Bar): (\\d+) | +=> +| ${ret} = 'Foo: 42' +| ${match} = 'Bar: 43' +| ${group1} = 'Bar' +| ${group2} = '43' + + + + + +item +msg=None + +Verifies that the given item is not empty. + +The length of the item is got using the `Get Length` keyword. The +default error message can be overridden with the ``msg`` argument. + + + + + +first +second +msg=None +values=True +ignore_case=False + +Fails if the given objects are equal. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``. + +If ``ignore_case`` is given a true value (see `Boolean arguments`) and +both arguments are strings, it indicates that comparison should be +case-insensitive. New option in Robot Framework 3.0.1. + + + + + +first +second +msg=None +values=True +base=None + +Fails if objects are equal after converting them to integers. + +See `Convert To Integer` for information how to convert integers from +other bases than 10 using ``base`` argument or ``0b/0o/0x`` prefixes. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``. + +See `Should Be Equal As Integers` for some usage examples. + + + + + +first +second +msg=None +values=True +precision=6 + +Fails if objects are equal after converting them to real numbers. + +The conversion is done with `Convert To Number` keyword using the +given ``precision``. + +See `Should Be Equal As Numbers` for examples on how to use +``precision`` and why it does not always work as expected. See also +`Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``. + + + + + +first +second +msg=None +values=True +ignore_case=False + +Fails if objects are equal after converting them to strings. + +If ``ignore_case`` is given a true value (see `Boolean arguments`), it +indicates that comparison should be case-insensitive. New option in +Robot Framework 3.0.1. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``. + + + + + +condition +msg=None + +Fails if the given condition is true. + +See `Should Be True` for details about how ``condition`` is evaluated +and how ``msg`` can be used to override the default error message. + + + + + +container +item +msg=None +values=True +ignore_case=False + +Fails if ``container`` contains ``item`` one or more times. + +Works with strings, lists, and anything that supports Python's ``in`` +operator. + +See `Should Be Equal` for an explanation on how to override the default +error message with arguments ``msg`` and ``values``. ``ignore_case`` +has exactly the same semantics as with `Should Contain`. + +Examples: +| Should Not Contain | ${some list} | value | +| Should Not Contain | ${output} | FAILED | ignore_case=True | + + + + + +container +*items +**configuration + +Fails if ``container`` contains one or more of the ``*items``. + +Works with strings, lists, and anything that supports Python's ``in`` +operator. + +Supports additional configuration parameters ``msg``, ``values`` +and ``ignore_case``, which have exactly the same semantics as arguments +with same names have with `Should Contain`. These arguments must +always be given using ``name=value`` syntax after all ``items``. + +Note that possible equal signs in ``items`` must be escaped with +a backslash (e.g. ``foo\=bar``) to avoid them to be passed in +as ``**configuration``. + +Examples: +| Should Not Contain Any | ${string} | substring 1 | substring 2 | +| Should Not Contain Any | ${list} | item 1 | item 2 | item 3 | +| Should Not Contain Any | ${list} | item 1 | item 2 | item 3 | ignore_case=True | +| Should Not Contain Any | ${list} | @{items} | msg=Custom message | values=False | + +New in Robot Framework 3.0.1. + + + + + +str1 +str2 +msg=None +values=True +ignore_case=False + +Fails if the string ``str1`` ends with the string ``str2``. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``, as well as for semantics +of the ``ignore_case`` option. + + + + + +string +pattern +msg=None +values=True +ignore_case=False + +Fails if the given ``string`` matches the given ``pattern``. + +Pattern matching is similar as matching files in a shell with +``*``, ``?`` and ``[chars]`` acting as wildcards. See the +`Glob patterns` section for more information. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``, as well as for semantics +of the ``ignore_case`` option. + + + + + +string +pattern +msg=None +values=True + +Fails if ``string`` matches ``pattern`` as a regular expression. + +See `Should Match Regexp` for more information about arguments. + + + + + +str1 +str2 +msg=None +values=True +ignore_case=False + +Fails if the string ``str1`` starts with the string ``str2``. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``, as well as for semantics +of the ``ignore_case`` option. + + + + + +str1 +str2 +msg=None +values=True +ignore_case=False + +Fails if the string ``str1`` does not start with the string ``str2``. + +See `Should Be Equal` for an explanation on how to override the default +error message with ``msg`` and ``values``, as well as for semantics +of the ``ignore_case`` option. + + + + + +time_ +reason=None + +Pauses the test executed for the given time. + +``time`` may be either a number or a time string. Time strings are in +a format such as ``1 day 2 hours 3 minutes 4 seconds 5milliseconds`` or +``1d 2h 3m 4s 5ms``, and they are fully explained in an appendix of +Robot Framework User Guide. Optional `reason` can be used to explain why +sleeping is necessary. Both the time slept and the reason are logged. + +Examples: +| Sleep | 42 | +| Sleep | 1.5 | +| Sleep | 2 minutes 10 seconds | +| Sleep | 10s | Wait for a reply | + + + + + +name +msg=None + +Fails unless the given variable exists within the current scope. + +The name of the variable can be given either as a normal variable name +(e.g. ``${NAME}``) or in escaped format (e.g. ``\${NAME}``). Notice +that the former has some limitations explained in `Set Suite Variable`. + +The default error message can be overridden with the ``msg`` argument. + +See also `Variable Should Not Exist` and `Keyword Should Exist`. + + + + + +name +msg=None + +Fails if the given variable exists within the current scope. + +The name of the variable can be given either as a normal variable name +(e.g. ``${NAME}``) or in escaped format (e.g. ``\${NAME}``). Notice +that the former has some limitations explained in `Set Suite Variable`. + +The default error message can be overridden with the ``msg`` argument. + +See also `Variable Should Exist` and `Keyword Should Exist`. + + + + + +retry +retry_interval +name +*args + +Runs the specified keyword and retries if it fails. + +``name`` and ``args`` define the keyword that is executed similarly +as with `Run Keyword`. How long to retry running the keyword is +defined using ``retry`` argument either as timeout or count. +``retry_interval`` is the time to wait before trying to run the +keyword again after the previous run has failed. + +If ``retry`` is given as timeout, it must be in Robot Framework's +time format (e.g. ``1 minute``, ``2 min 3 s``, ``4.5``) that is +explained in an appendix of Robot Framework User Guide. If it is +given as count, it must have ``times`` or ``x`` postfix (e.g. +``5 times``, ``10 x``). ``retry_interval`` must always be given in +Robot Framework's time format. + +If the keyword does not succeed regardless of retries, this keyword +fails. If the executed keyword passes, its return value is returned. + +Examples: +| Wait Until Keyword Succeeds | 2 min | 5 sec | My keyword | argument | +| ${result} = | Wait Until Keyword Succeeds | 3x | 200ms | My keyword | + +All normal failures are caught by this keyword. Errors caused by +invalid syntax, test or keyword timeouts, or fatal exceptions (caused +e.g. by `Fatal Error`) are not caught. + +Running the same keyword multiple times inside this keyword can create +lots of output and considerably increase the size of the generated +output files. It is possible to remove unnecessary keywords from +the outputs using ``--RemoveKeywords WUKS`` command line option. + +Support for specifying ``retry`` as a number of times to retry is +a new feature in Robot Framework 2.9. +Since Robot Framework 2.9, variable errors are caught by this keyword. + + + + diff --git a/libspecs/Collections.libspec b/libspecs/Collections.libspec new file mode 100644 index 000000000..75feb0881 --- /dev/null +++ b/libspecs/Collections.libspec @@ -0,0 +1,880 @@ + + +3.1 +global +yes +A test library providing keywords for handling lists and dictionaries. + +``Collections`` is Robot Framework's standard library that provides a +set of keywords for handling Python lists and dictionaries. This +library has keywords, for example, for modifying and getting +values from lists and dictionaries (e.g. `Append To List`, `Get +From Dictionary`) and for verifying their contents (e.g. `Lists +Should Be Equal`, `Dictionary Should Contain Value`). + += Related keywords in BuiltIn = + +Following keywords in the BuiltIn library can also be used with +lists and dictionaries: + +| = Keyword Name = | = Applicable With = | = Comment = | +| `Create List` | lists | +| `Create Dictionary` | dicts | Was in Collections until RF 2.9. | +| `Get Length` | both | +| `Length Should Be` | both | +| `Should Be Empty` | both | +| `Should Not Be Empty` | both | +| `Should Contain` | both | +| `Should Not Contain` | both | +| `Should Contain X Times` | lists | +| `Should Not Contain X Times` | lists | +| `Get Count` | lists | + += Using with list-like and dictionary-like objects = + +List keywords that do not alter the given list can also be used +with tuples, and to some extend also with other iterables. +`Convert To List` can be used to convert tuples and other iterables +to Python ``list`` objects. + +Similarly dictionary keywords can, for most parts, be used with other +mappings. `Convert To Dictionary` can be used if real Python ``dict`` +objects are needed. + += Boolean arguments = + +Some keywords accept arguments that are handled as Boolean values true or +false. If such an argument is given as a string, it is considered false if +it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or +``0``, case-insensitively. Keywords verifying something that allow dropping +actual and expected values from the possible error message also consider +string ``no values`` to be false. Other strings are considered true +regardless their value, and other argument types are tested using the same +[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. + +True examples: +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=True | # Strings are generally true. | +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=yes | # Same as the above. | +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${TRUE} | # Python ``True`` is true. | +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${42} | # Numbers other than 0 are true. | + +False examples: +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=False | # String ``false`` is false. | +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=no | # Also string ``no`` is false. | +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${EMPTY} | # Empty string is false. | +| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${FALSE} | # Python ``False`` is false. | +| `Lists Should Be Equal` | ${x} | ${y} | Custom error | values=no values | # ``no values`` works with ``values`` argument | + +Considering string ``NONE`` false is new in Robot Framework 3.0.3 and +considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. + += Data in examples = + +List related keywords use variables in format ``${Lx}`` in their examples. +They mean lists with as many alphabetic characters as specified by ``x``. +For example, ``${L1}`` means ``['a']`` and ``${L3}`` means +``['a', 'b', 'c']``. + +Dictionary keywords use similar ``${Dx}`` variables. For example, ``${D1}`` +means ``{'a': 1}`` and ``${D3}`` means ``{'a': 1, 'b': 2, 'c': 3}``. + + +list_ +*values + +Adds ``values`` to the end of ``list``. + +Example: +| Append To List | ${L1} | xxx | | | +| Append To List | ${L2} | x | y | z | +=> +| ${L1} = ['a', 'xxx'] +| ${L2} = ['a', 'b', 'x', 'y', 'z'] + + + + + +*lists + +Combines the given ``lists`` together and returns the result. + +The given lists are not altered by this keyword. + +Example: +| ${x} = | Combine List | ${L1} | ${L2} | | +| ${y} = | Combine List | ${L1} | ${L2} | ${L1} | +=> +| ${x} = ['a', 'a', 'b'] +| ${y} = ['a', 'a', 'b', 'a'] +| ${L1} and ${L2} are not changed. + + + + + +item + +Converts the given ``item`` to a Python ``dict`` type. + +Mainly useful for converting other mappings to dictionaries. Use +`Create Dictionary` from the BuiltIn library for constructing new +dictionaries. + +New in Robot Framework 2.9. + + + + + +item + +Converts the given ``item`` to a Python ``list`` type. + +Mainly useful for converting tuples and other iterable to lists. +Use `Create List` from the BuiltIn library for constructing new lists. + + + + + +dictionary + +Returns a copy of the given dictionary. + +The given dictionary is never altered by this keyword. + + + + + +list_ + +Returns a copy of the given list. + +The given list is never altered by this keyword. + + + + + +list_ +value +start=0 +end=None + +Returns the number of occurrences of the given ``value`` in ``list``. + +The search can be narrowed to the selected sublist by the ``start`` and +``end`` indexes having the same semantics as with `Get Slice From List` +keyword. The given list is never altered by this keyword. + +Example: +| ${x} = | Count Values In List | ${L3} | b | +=> +| ${x} = 1 +| ${L3} is not changed + + + + + +dict1 +dict2 +msg=None +values=True + +Fails if the given dictionaries are not equal. + +First the equality of dictionaries' keys is checked and after that all +the key value pairs. If there are differences between the values, those +are listed in the error message. The types of the dictionaries do not +need to be same. + +See `Lists Should Be Equal` for more information about configuring +the error message with ``msg`` and ``values`` arguments. + +The given dictionaries are never altered by this keyword. + + + + + +dictionary +key +value +msg=None + +An item of ``key`` / ``value`` must be found in a ``dictionary``. + +Value is converted to unicode for comparison. + +See `Lists Should Be Equal` for an explanation of ``msg``. +The given dictionary is never altered by this keyword. + + + + + +dictionary +key +msg=None + +Fails if ``key`` is not found from ``dictionary``. + +See `List Should Contain Value` for an explanation of ``msg``. + +The given dictionary is never altered by this keyword. + + + + + +dict1 +dict2 +msg=None +values=True + +Fails unless all items in ``dict2`` are found from ``dict1``. + +See `Lists Should Be Equal` for more information about configuring +the error message with ``msg`` and ``values`` arguments. + +The given dictionaries are never altered by this keyword. + + + + + +dictionary +value +msg=None + +Fails if ``value`` is not found from ``dictionary``. + +See `List Should Contain Value` for an explanation of ``msg``. + +The given dictionary is never altered by this keyword. + + + + + +dictionary +key +msg=None + +Fails if ``key`` is found from ``dictionary``. + +See `List Should Contain Value` for an explanation of ``msg``. + +The given dictionary is never altered by this keyword. + + + + + +dictionary +value +msg=None + +Fails if ``value`` is found from ``dictionary``. + +See `List Should Contain Value` for an explanation of ``msg``. + +The given dictionary is never altered by this keyword. + + + + + +dictionary + +Returns items of the given ``dictionary``. + +Items are returned sorted by keys. The given ``dictionary`` is not +altered by this keyword. + +Example: +| ${items} = | Get Dictionary Items | ${D3} | +=> +| ${items} = ['a', 1, 'b', 2, 'c', 3] + + + + + +dictionary + +Returns keys of the given ``dictionary``. + +If keys are sortable, they are returned in sorted order. The given +``dictionary`` is never altered by this keyword. + +Example: +| ${keys} = | Get Dictionary Keys | ${D3} | +=> +| ${keys} = ['a', 'b', 'c'] + + + + + +dictionary + +Returns values of the given dictionary. + +Values are returned sorted according to keys. The given dictionary is +never altered by this keyword. + +Example: +| ${values} = | Get Dictionary Values | ${D3} | +=> +| ${values} = [1, 2, 3] + + + + + +dictionary +key + +Returns a value from the given ``dictionary`` based on the given ``key``. + +If the given ``key`` cannot be found from the ``dictionary``, this +keyword fails. + +The given dictionary is never altered by this keyword. + +Example: +| ${value} = | Get From Dictionary | ${D3} | b | +=> +| ${value} = 2 + + + + + +list_ +index + +Returns the value specified with an ``index`` from ``list``. + +The given list is never altered by this keyword. + +Index ``0`` means the first position, ``1`` the second, and so on. +Similarly, ``-1`` is the last position, ``-2`` the second last, and so on. +Using an index that does not exist on the list causes an error. +The index can be either an integer or a string that can be converted +to an integer. + +Examples (including Python equivalents in comments): +| ${x} = | Get From List | ${L5} | 0 | # L5[0] | +| ${y} = | Get From List | ${L5} | -2 | # L5[-2] | +=> +| ${x} = 'a' +| ${y} = 'd' +| ${L5} is not changed + + + + + +list_ +value +start=0 +end=None + +Returns the index of the first occurrence of the ``value`` on the list. + +The search can be narrowed to the selected sublist by the ``start`` and +``end`` indexes having the same semantics as with `Get Slice From List` +keyword. In case the value is not found, -1 is returned. The given list +is never altered by this keyword. + +Example: +| ${x} = | Get Index From List | ${L5} | d | +=> +| ${x} = 3 +| ${L5} is not changed + + + + + +list +pattern +case_insensitive=False +whitespace_insensitive=False + +Returns the count of matches to ``pattern`` in ``list``. + +For more information on ``pattern``, ``case_insensitive``, and +``whitespace_insensitive``, see `Should Contain Match`. + +Examples: +| ${count}= | Get Match Count | ${list} | a* | # ${count} will be the count of strings beginning with 'a' | +| ${count}= | Get Match Count | ${list} | regexp=a.* | # ${matches} will be the count of strings beginning with 'a' (regexp version) | +| ${count}= | Get Match Count | ${list} | a* | case_insensitive=${True} | # ${matches} will be the count of strings beginning with 'a' or 'A' | + + + + + +list +pattern +case_insensitive=False +whitespace_insensitive=False + +Returns a list of matches to ``pattern`` in ``list``. + +For more information on ``pattern``, ``case_insensitive``, and +``whitespace_insensitive``, see `Should Contain Match`. + +Examples: +| ${matches}= | Get Matches | ${list} | a* | # ${matches} will contain any string beginning with 'a' | +| ${matches}= | Get Matches | ${list} | regexp=a.* | # ${matches} will contain any string beginning with 'a' (regexp version) | +| ${matches}= | Get Matches | ${list} | a* | case_insensitive=${True} | # ${matches} will contain any string beginning with 'a' or 'A' | + + + + + +list_ +start=0 +end=None + +Returns a slice of the given list between ``start`` and ``end`` indexes. + +The given list is never altered by this keyword. + +If both ``start`` and ``end`` are given, a sublist containing values +from ``start`` to ``end`` is returned. This is the same as +``list[start:end]`` in Python. To get all items from the beginning, +use 0 as the start value, and to get all items until and including +the end, use ``None`` (default) as the end value. + +Using ``start`` or ``end`` not found on the list is the same as using +the largest (or smallest) available index. + +Examples (incl. Python equivalents in comments): +| ${x} = | Get Slice From List | ${L5} | 2 | 4 | # L5[2:4] | +| ${y} = | Get Slice From List | ${L5} | 1 | | # L5[1:None] | +| ${z} = | Get Slice From List | ${L5} | | -2 | # L5[0:-2] | +=> +| ${x} = ['c', 'd'] +| ${y} = ['b', 'c', 'd', 'e'] +| ${z} = ['a', 'b', 'c'] +| ${L5} is not changed + + + + + +list_ +index +value + +Inserts ``value`` into ``list`` to the position specified with ``index``. + +Index ``0`` adds the value into the first position, ``1`` to the second, +and so on. Inserting from right works with negative indices so that +``-1`` is the second last position, ``-2`` third last, and so on. Use +`Append To List` to add items to the end of the list. + +If the absolute value of the index is greater than +the length of the list, the value is added at the end +(positive index) or the beginning (negative index). An index +can be given either as an integer or a string that can be +converted to an integer. + +Example: +| Insert Into List | ${L1} | 0 | xxx | +| Insert Into List | ${L2} | ${-1} | xxx | +=> +| ${L1} = ['xxx', 'a'] +| ${L2} = ['a', 'xxx', 'b'] + + + + + +dictionary +*keys + +Keeps the given ``keys`` in the ``dictionary`` and removes all other. + +If the given ``key`` cannot be found from the ``dictionary``, it +is ignored. + +Example: +| Keep In Dictionary | ${D5} | b | x | d | +=> +| ${D5} = {'b': 2, 'd': 4} + + + + + +list1 +list2 +msg=None +values=True + +Fails if not all of the elements in ``list2`` are found in ``list1``. + +The order of values and the number of values are not taken into +account. + +See `Lists Should Be Equal` for more information about configuring +the error message with ``msg`` and ``values`` arguments. + + + + + +list_ +value +msg=None + +Fails if the ``value`` is not found from ``list``. + +If the keyword fails, the default error messages is ``<list> does +not contain value '<value>'``. A custom message can be given using +the ``msg`` argument. + + + + + +list_ +msg=None + +Fails if any element in the ``list`` is found from it more than once. + +The default error message lists all the elements that were found +from the ``list`` multiple times, but it can be overridden by giving +a custom ``msg``. All multiple times found items and their counts are +also logged. + +This keyword works with all iterables that can be converted to a list. +The original iterable is never altered. + + + + + +list_ +value +msg=None + +Fails if the ``value`` is found from ``list``. + +See `List Should Contain Value` for an explanation of ``msg``. + + + + + +list1 +list2 +msg=None +values=True +names=None + +Fails if given lists are unequal. + +The keyword first verifies that the lists have equal lengths, and then +it checks are all their values equal. Possible differences between the +values are listed in the default error message like ``Index 4: ABC != +Abc``. The types of the lists do not need to be the same. For example, +Python tuple and list with same content are considered equal. + + +The error message can be configured using ``msg`` and ``values`` +arguments: +- If ``msg`` is not given, the default error message is used. +- If ``msg`` is given and ``values`` gets a value considered true + (see `Boolean arguments`), the error message starts with the given + ``msg`` followed by a newline and the default message. +- If ``msg`` is given and ``values`` is not given a true value, + the error message is just the given ``msg``. + +Optional ``names`` argument can be used for naming the indices shown in +the default error message. It can either be a list of names matching +the indices in the lists or a dictionary where keys are indices that +need to be named. It is not necessary to name all of the indices. When +using a dictionary, keys can be either integers or strings that can be +converted to integers. + +Examples: +| ${names} = | Create List | First Name | Family Name | Email | +| Lists Should Be Equal | ${people1} | ${people2} | names=${names} | +| ${names} = | Create Dictionary | 0=First Name | 2=Email | +| Lists Should Be Equal | ${people1} | ${people2} | names=${names} | + +If the items in index 2 would differ in the above examples, the error +message would contain a row like ``Index 2 (email): name@foo.com != +name@bar.com``. + + + + + +dictionary +level=INFO + +Logs the size and contents of the ``dictionary`` using given ``level``. + +Valid levels are TRACE, DEBUG, INFO (default), and WARN. + +If you only want to log the size, use keyword `Get Length` from +the BuiltIn library. + + + + + +list_ +level=INFO + +Logs the length and contents of the ``list`` using given ``level``. + +Valid levels are TRACE, DEBUG, INFO (default), and WARN. + +If you only want to the length, use keyword `Get Length` from +the BuiltIn library. + + + + + +dictionary +key +default= + +Pops the given ``key`` from the ``dictionary`` and returns its value. + +By default the keyword fails if the given ``key`` cannot be found from +the ``dictionary``. If optional ``default`` value is given, it will be +returned instead of failing. + +Example: +| ${val}= | Pop From Dictionary | ${D3} | b | +=> +| ${val} = 2 +| ${D3} = {'a': 1, 'c': 3} + +New in Robot Framework 2.9.2. + + + + + +list_ + +Returns a list without duplicates based on the given ``list``. + +Creates and returns a new list that contains all items in the given +list so that one item can appear only once. Order of the items in +the new list is the same as in the original except for missing +duplicates. Number of the removed duplicates is logged. + + + + + +dictionary +*keys + +Removes the given ``keys`` from the ``dictionary``. + +If the given ``key`` cannot be found from the ``dictionary``, it +is ignored. + +Example: +| Remove From Dictionary | ${D3} | b | x | y | +=> +| ${D3} = {'a': 1, 'c': 3} + + + + + +list_ +index + +Removes and returns the value specified with an ``index`` from ``list``. + +Index ``0`` means the first position, ``1`` the second and so on. +Similarly, ``-1`` is the last position, ``-2`` the second last, and so on. +Using an index that does not exist on the list causes an error. +The index can be either an integer or a string that can be converted +to an integer. + +Example: +| ${x} = | Remove From List | ${L2} | 0 | +=> +| ${x} = 'a' +| ${L2} = ['b'] + + + + + +list_ +*values + +Removes all occurrences of given ``values`` from ``list``. + +It is not an error if a value does not exist in the list at all. + +Example: +| Remove Values From List | ${L4} | a | c | e | f | +=> +| ${L4} = ['b', 'd'] + + + + + +list_ + +Reverses the given list in place. + +Note that the given list is changed and nothing is returned. Use +`Copy List` first, if you need to keep also the original order. + +| Reverse List | ${L3} | +=> +| ${L3} = ['c', 'b', 'a'] + + + + + +list_ +index +value + +Sets the value of ``list`` specified by ``index`` to the given ``value``. + +Index ``0`` means the first position, ``1`` the second and so on. +Similarly, ``-1`` is the last position, ``-2`` second last, and so on. +Using an index that does not exist on the list causes an error. +The index can be either an integer or a string that can be converted to +an integer. + +Example: +| Set List Value | ${L3} | 1 | xxx | +| Set List Value | ${L3} | -1 | yyy | +=> +| ${L3} = ['a', 'xxx', 'yyy'] + + + + + +dictionary +*key_value_pairs +**items + +Adds the given ``key_value_pairs`` and ``items`` to the ``dictionary``. + +Giving items as ``key_value_pairs`` means giving keys and values +as separate arguments: + +| Set To Dictionary | ${D1} | key | value | second | ${2} | +=> +| ${D1} = {'a': 1, 'key': 'value', 'second': 2} + +| Set To Dictionary | ${D1} | key=value | second=${2} | + +The latter syntax is typically more convenient to use, but it has +a limitation that keys must be strings. + +If given keys already exist in the dictionary, their values are updated. + + + + + +list +pattern +msg=None +case_insensitive=False +whitespace_insensitive=False + +Fails if ``pattern`` is not found in ``list``. + +See `List Should Contain Value` for an explanation of ``msg``. + +By default, pattern matching is similar to matching files in a shell +and is case-sensitive and whitespace-sensitive. In the pattern syntax, +``*`` matches to anything and ``?`` matches to any single character. You +can also prepend ``glob=`` to your pattern to explicitly use this pattern +matching behavior. + +If you prepend ``regexp=`` to your pattern, your pattern will be used +according to the Python +[http://docs.python.org/library/re.html|re module] regular expression +syntax. Important note: Backslashes are an escape character, and must +be escaped with another backslash (e.g. ``regexp=\\d{6}`` to search for +``\d{6}``). See `BuiltIn.Should Match Regexp` for more details. + +If ``case_insensitive`` is given a true value (see `Boolean arguments`), +the pattern matching will ignore case. + +If ``whitespace_insensitive`` is given a true value (see `Boolean +arguments`), the pattern matching will ignore whitespace. + +Non-string values in lists are ignored when matching patterns. + +The given list is never altered by this keyword. + +See also ``Should Not Contain Match``. + +Examples: +| Should Contain Match | ${list} | a* | | | # Match strings beginning with 'a'. | +| Should Contain Match | ${list} | regexp=a.* | | | # Same as the above but with regexp. | +| Should Contain Match | ${list} | regexp=\\d{6} | | | # Match strings containing six digits. | +| Should Contain Match | ${list} | a* | case_insensitive=True | | # Match strings beginning with 'a' or 'A'. | +| Should Contain Match | ${list} | ab* | whitespace_insensitive=yes | | # Match strings beginning with 'ab' with possible whitespace ignored. | +| Should Contain Match | ${list} | ab* | whitespace_insensitive=true | case_insensitive=true | # Same as the above but also ignore case. | + + + + + +list +pattern +msg=None +case_insensitive=False +whitespace_insensitive=False + +Fails if ``pattern`` is found in ``list``. + +Exact opposite of `Should Contain Match` keyword. See that keyword +for information about arguments and usage in general. + + + + + +list_ + +Sorts the given list in place. + +The strings are sorted alphabetically and the numbers numerically. + +Note that the given list is changed and nothing is returned. Use +`Copy List` first, if you need to keep also the original order. + +${L} = [2,1,'a','c','b'] +| Sort List | ${L} | +=> +| ${L} = [1, 2, 'a', 'b', 'c'] + + + + diff --git a/libspecs/DateTime.libspec b/libspecs/DateTime.libspec new file mode 100644 index 000000000..538dd5912 --- /dev/null +++ b/libspecs/DateTime.libspec @@ -0,0 +1,512 @@ + + +3.1 +global +yes +A test library for handling date and time values. + +``DateTime`` is a Robot Framework standard library that supports creating and +converting date and time values (e.g. `Get Current Date`, `Convert Time`), +as well as doing simple calculations with them (e.g. `Subtract Time From Date`, +`Add Time To Time`). It supports dates and times in various formats, and can +also be used by other libraries programmatically. + += Table of Contents = + +- `Terminology` +- `Date formats` +- `Time formats` +- `Millisecond handling` +- `Programmatic usage` +- `Shortcuts` +- `Keywords` + += Terminology = + +In the context of this library, ``date`` and ``time`` generally have following +meanings: + +- ``date``: An entity with both date and time components but without any + timezone information. For example, ``2014-06-11 10:07:42``. +- ``time``: A time interval. For example, ``1 hour 20 minutes`` or ``01:20:00``. + +This terminology differs from what Python's standard +[http://docs.python.org/library/datetime.html|datetime] module uses. +Basically its +[http://docs.python.org/library/datetime.html#datetime-objects|datetime] and +[http://docs.python.org/library/datetime.html#timedelta-objects|timedelta] +objects match ``date`` and ``time`` as defined by this library. + += Date formats = + +Dates can given to and received from keywords in `timestamp`, `custom +timestamp`, `Python datetime` and `epoch time` formats. These formats are +discussed thoroughly in subsequent sections. + +Input format is determined automatically based on the given date except when +using custom timestamps, in which case it needs to be given using +``date_format`` argument. Default result format is timestamp, but it can +be overridden using ``result_format`` argument. + +== Timestamp == + +If a date is given as a string, it is always considered to be a timestamp. +If no custom formatting is given using ``date_format`` argument, the timestamp +is expected to be in [http://en.wikipedia.org/wiki/ISO_8601|ISO 8601] like +format ``YYYY-MM-DD hh:mm:ss.mil``, where any non-digit character can be used +as a separator or separators can be omitted altogether. Additionally, +only the date part is mandatory, all possibly missing time components are +considered to be zeros. + +Dates can also be returned in the same ``YYYY-MM-DD hh:mm:ss.mil`` format by +using ``timestamp`` value with ``result_format`` argument. This is also the +default format that keywords returning dates use. Milliseconds can be excluded +using ``exclude_millis`` as explained in `Millisecond handling` section. + +Examples: +| ${date1} = | Convert Date | 2014-06-11 10:07:42.000 | +| ${date2} = | Convert Date | 20140611 100742 | result_format=timestamp | +| Should Be Equal | ${date1} | ${date2} | +| ${date} = | Convert Date | 20140612 12:57 | exclude_millis=yes | +| Should Be Equal | ${date} | 2014-06-12 12:57:00 | + +== Custom timestamp == + +It is possible to use custom timestamps in both input and output. +The custom format is same as accepted by Python's +[http://docs.python.org/library/datetime.html#strftime-strptime-behavior| +datatime.strptime] function. For example, the default timestamp discussed +in the previous section would match ``%Y-%m-%d %H:%M:%S.%f``. + +When using a custom timestamp in input, it must be specified using +``date_format`` argument. The actual input value must be a string that matches +the specified format exactly. When using a custom timestamp in output, it must +be given using ``result_format`` argument. + +Examples: +| ${date} = | Convert Date | 28.05.2014 12:05 | date_format=%d.%m.%Y %H:%M | +| Should Be Equal | ${date} | 2014-05-28 12:05:00.000 | +| ${date} = | Convert Date | ${date} | result_format=%d.%m.%Y | +| Should Be Equal | ${date} | 28.05.2014 | + +Notice that locale aware directives like ``%b`` do not work correctly with +Jython on non-English locales: http://bugs.jython.org/issue2285 + +== Python datetime == + +Python's standard +[http://docs.python.org/library/datetime.html#datetime-objects|datetime] +objects can be used both in input and output. In input they are recognized +automatically, and in output it is possible to get them by giving ``datetime`` +value to ``result_format`` argument. + +One nice benefit with datetime objects is that they have different time +components available as attributes that can be easily accessed using the +extended variable syntax. + +Examples: +| ${datetime} = | Convert Date | 2014-06-11 10:07:42.123 | datetime | +| Should Be Equal As Integers | ${datetime.year} | 2014 | +| Should Be Equal As Integers | ${datetime.month} | 6 | +| Should Be Equal As Integers | ${datetime.day} | 11 | +| Should Be Equal As Integers | ${datetime.hour} | 10 | +| Should Be Equal As Integers | ${datetime.minute} | 7 | +| Should Be Equal As Integers | ${datetime.second} | 42 | +| Should Be Equal As Integers | ${datetime.microsecond} | 123000 | + +== Epoch time == + +Epoch time is the time in seconds since the +[http://en.wikipedia.org/wiki/Unix_time|UNIX epoch] i.e. 00:00:00.000 (UTC) +1 January 1970. To give a date in epoch time, it must be given as a number +(integer or float), not as a string. To return a date in epoch time, +it is possible to use ``epoch`` value with ``result_format`` argument. +Epoch time is returned as a floating point number. + +Notice that epoch time itself is independent on timezones and thus same +around the world at a certain time. What local time a certain epoch time +matches obviously then depends on the timezone. For example, examples below +were tested in Finland but verifications would fail on other timezones. + +Examples: +| ${date} = | Convert Date | ${1000000000} | +| Should Be Equal | ${date} | 2001-09-09 04:46:40.000 | +| ${date} = | Convert Date | 2014-06-12 13:27:59.279 | epoch | +| Should Be Equal | ${date} | ${1402568879.279} | + +== Earliest supported date == + +The earliest date that is supported depends on the date format and to some +extend on the platform: + +- Timestamps support year 1900 and above. +- Python datetime objects support year 1 and above. +- Epoch time supports 1970 and above on Windows with Python and IronPython. +- On other platforms epoch time supports 1900 and above or even earlier. + +Prior to Robot Framework 2.9.2, all formats had same limitation as epoch time +has nowadays. + += Time formats = + +Similarly as dates, times can be given to and received from keywords in +various different formats. Supported formats are `number`, `time string` +(verbose and compact), `timer string` and `Python timedelta`. + +Input format for time is always determined automatically based on the input. +Result format is number by default, but it can be customised using +``result_format`` argument. + +== Number == + +Time given as a number is interpreted to be seconds. It can be given +either as an integer or a float, or it can be a string that can be converted +to a number. + +To return a time as a number, ``result_format`` argument must have value +``number``, which is also the default. Returned number is always a float. + +Examples: +| ${time} = | Convert Time | 3.14 | +| Should Be Equal | ${time} | ${3.14} | +| ${time} = | Convert Time | ${time} | result_format=number | +| Should Be Equal | ${time} | ${3.14} | + +== Time string == + +Time strings are strings in format like ``1 minute 42 seconds`` or ``1min 42s``. +The basic idea of this format is having first a number and then a text +specifying what time that number represents. Numbers can be either +integers or floating point numbers, the whole format is case and space +insensitive, and it is possible to add a minus prefix to specify negative +times. The available time specifiers are: + +- ``days``, ``day``, ``d`` +- ``hours``, ``hour``, ``h`` +- ``minutes``, ``minute``, ``mins``, ``min``, ``m`` +- ``seconds``, ``second``, ``secs``, ``sec``, ``s`` +- ``milliseconds``, ``millisecond``, ``millis``, ``ms`` + +When returning a time string, it is possible to select between ``verbose`` +and ``compact`` representations using ``result_format`` argument. The verbose +format uses long specifiers ``day``, ``hour``, ``minute``, ``second`` and +``millisecond``, and adds ``s`` at the end when needed. The compact format uses +shorter specifiers ``d``, ``h``, ``min``, ``s`` and ``ms``, and even drops +the space between the number and the specifier. + +Examples: +| ${time} = | Convert Time | 1 minute 42 seconds | +| Should Be Equal | ${time} | ${102} | +| ${time} = | Convert Time | 4200 | verbose | +| Should Be Equal | ${time} | 1 hour 10 minutes | +| ${time} = | Convert Time | - 1.5 hours | compact | +| Should Be Equal | ${time} | - 1h 30min | + +== Timer string == + +Timer string is a string given in timer like format ``hh:mm:ss.mil``. In this +format both hour and millisecond parts are optional, leading and trailing +zeros can be left out when they are not meaningful, and negative times can +be represented by adding a minus prefix. + +To return a time as timer string, ``result_format`` argument must be given +value ``timer``. Timer strings are by default returned in full ``hh:mm:ss.mil`` +format, but milliseconds can be excluded using ``exclude_millis`` as explained +in `Millisecond handling` section. + +Examples: +| ${time} = | Convert Time | 01:42 | +| Should Be Equal | ${time} | ${102} | +| ${time} = | Convert Time | 01:10:00.123 | +| Should Be Equal | ${time} | ${4200.123} | +| ${time} = | Convert Time | 102 | timer | +| Should Be Equal | ${time} | 00:01:42.000 | +| ${time} = | Convert Time | -101.567 | timer | exclude_millis=yes | +| Should Be Equal | ${time} | -00:01:42 | + +== Python timedelta == + +Python's standard +[http://docs.python.org/library/datetime.html#datetime.timedelta|timedelta] +objects are also supported both in input and in output. In input they are +recognized automatically, and in output it is possible to receive them by +giving ``timedelta`` value to ``result_format`` argument. + +Examples: +| ${timedelta} = | Convert Time | 01:10:02.123 | timedelta | +| Should Be Equal | ${timedelta.total_seconds()} | ${4202.123} | + += Millisecond handling = + +This library handles dates and times internally using the precision of the +given input. With `timestamp`, `time string`, and `timer string` result +formats seconds are, however, rounded to millisecond accuracy. Milliseconds +may also be included even if there would be none. + +All keywords returning dates or times have an option to leave milliseconds out +by giving a true value to ``exclude_millis`` argument. If the argument is given +as a string, it is considered true unless it is empty or case-insensitively +equal to ``false``, ``none`` or ``no``. Other argument types are tested using +same [http://docs.python.org/library/stdtypes.html#truth|rules as in +Python]. Notice that prior to Robot Framework 2.9, all strings except +the empty string were considered true, and that considering ``none`` false is +new in Robot Framework 3.0.3. + +When milliseconds are excluded, seconds in returned dates and times are +rounded to the nearest full second. With `timestamp` and `timer string` +result formats, milliseconds will also be removed from the returned string +altogether. + +Examples: +| ${date} = | Convert Date | 2014-06-11 10:07:42 | +| Should Be Equal | ${date} | 2014-06-11 10:07:42.000 | +| ${date} = | Convert Date | 2014-06-11 10:07:42.500 | exclude_millis=yes | +| Should Be Equal | ${date} | 2014-06-11 10:07:43 | +| ${dt} = | Convert Date | 2014-06-11 10:07:42.500 | datetime | exclude_millis=yes | +| Should Be Equal | ${dt.second} | ${43} | +| Should Be Equal | ${dt.microsecond} | ${0} | +| ${time} = | Convert Time | 102 | timer | exclude_millis=false | +| Should Be Equal | ${time} | 00:01:42.000 | | +| ${time} = | Convert Time | 102.567 | timer | exclude_millis=true | +| Should Be Equal | ${time} | 00:01:43 | | + += Programmatic usage = + +In addition to be used as normal library, this library is intended to +provide a stable API for other libraries to use if they want to support +same date and time formats as this library. All the provided keywords +are available as functions that can be easily imported: + +| from robot.libraries.DateTime import convert_time +| +| def example_keyword(timeout): +| seconds = convert_time(timeout) +| # ... + +Additionally helper classes ``Date`` and ``Time`` can be used directly: + +| from robot.libraries.DateTime import Date, Time +| +| def example_keyword(date, interval): +| date = Date(date).convert('datetime') +| interval = Time(interval).convert('number') +| # ... + + +date +time +result_format=timestamp +exclude_millis=False +date_format=None + +Adds time to date and returns the resulting date. + +Arguments: +- ``date:`` Date to add time to in one of the supported + `date formats`. +- ``time:`` Time that is added in one of the supported + `time formats`. +- ``result_format:`` Format of the returned date. +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. +- ``date_format:`` Possible `custom timestamp` format of ``date``. + +Examples: +| ${date} = | Add Time To Date | 2014-05-28 12:05:03.111 | 7 days | +| Should Be Equal | ${date} | 2014-06-04 12:05:03.111 | | +| ${date} = | Add Time To Date | 2014-05-28 12:05:03.111 | 01:02:03:004 | +| Should Be Equal | ${date} | 2014-05-28 13:07:06.115 | + + + + + +time1 +time2 +result_format=number +exclude_millis=False + +Adds time to another time and returns the resulting time. + +Arguments: +- ``time1:`` First time in one of the supported `time formats`. +- ``time2:`` Second time in one of the supported `time formats`. +- ``result_format:`` Format of the returned time. +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. + +Examples: +| ${time} = | Add Time To Time | 1 minute | 42 | +| Should Be Equal | ${time} | ${102} | +| ${time} = | Add Time To Time | 3 hours 5 minutes | 01:02:03 | timer | exclude_millis=yes | +| Should Be Equal | ${time} | 04:07:03 | + + + + + +date +result_format=timestamp +exclude_millis=False +date_format=None + +Converts between supported `date formats`. + +Arguments: +- ``date:`` Date in one of the supported `date formats`. +- ``result_format:`` Format of the returned date. +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. +- ``date_format:`` Specifies possible `custom timestamp` format. + +Examples: +| ${date} = | Convert Date | 20140528 12:05:03.111 | +| Should Be Equal | ${date} | 2014-05-28 12:05:03.111 | +| ${date} = | Convert Date | ${date} | epoch | +| Should Be Equal | ${date} | ${1401267903.111} | +| ${date} = | Convert Date | 5.28.2014 12:05 | exclude_millis=yes | date_format=%m.%d.%Y %H:%M | +| Should Be Equal | ${date} | 2014-05-28 12:05:00 | + + + + + +time +result_format=number +exclude_millis=False + +Converts between supported `time formats`. + +Arguments: +- ``time:`` Time in one of the supported `time formats`. +- ``result_format:`` Format of the returned time. +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. + +Examples: +| ${time} = | Convert Time | 10 seconds | +| Should Be Equal | ${time} | ${10} | +| ${time} = | Convert Time | 1:00:01 | verbose | +| Should Be Equal | ${time} | 1 hour 1 second | +| ${time} = | Convert Time | ${3661.5} | timer | exclude_milles=yes | +| Should Be Equal | ${time} | 01:01:02 | + + + + + +time_zone=local +increment=0 +result_format=timestamp +exclude_millis=False + +Returns current local or UTC time with an optional increment. + +Arguments: +- ``time_zone:`` Get the current time on this time zone. Currently only + ``local`` (default) and ``UTC`` are supported. +- ``increment:`` Optional time increment to add to the returned date in + one of the supported `time formats`. Can be negative. +- ``result_format:`` Format of the returned date (see `date formats`). +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. + +Examples: +| ${date} = | Get Current Date | +| Should Be Equal | ${date} | 2014-06-12 20:00:58.946 | +| ${date} = | Get Current Date | UTC | +| Should Be Equal | ${date} | 2014-06-12 17:00:58.946 | +| ${date} = | Get Current Date | increment=02:30:00 | +| Should Be Equal | ${date} | 2014-06-12 22:30:58.946 | +| ${date} = | Get Current Date | UTC | - 5 hours | +| Should Be Equal | ${date} | 2014-06-12 12:00:58.946 | +| ${date} = | Get Current Date | result_format=datetime | +| Should Be Equal | ${date.year} | ${2014} | +| Should Be Equal | ${date.month} | ${6} | + + + + + +date1 +date2 +result_format=number +exclude_millis=False +date1_format=None +date2_format=None + +Subtracts date from another date and returns time between. + +Arguments: +- ``date1:`` Date to subtract another date from in one of the + supported `date formats`. +- ``date2:`` Date that is subtracted in one of the supported + `date formats`. +- ``result_format:`` Format of the returned time (see `time formats`). +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. +- ``date1_format:`` Possible `custom timestamp` format of ``date1``. +- ``date2_format:`` Possible `custom timestamp` format of ``date2``. + + Examples: +| ${time} = | Subtract Date From Date | 2014-05-28 12:05:52 | 2014-05-28 12:05:10 | +| Should Be Equal | ${time} | ${42} | +| ${time} = | Subtract Date From Date | 2014-05-28 12:05:52 | 2014-05-27 12:05:10 | verbose | +| Should Be Equal | ${time} | 1 day 42 seconds | + + + + + +date +time +result_format=timestamp +exclude_millis=False +date_format=None + +Subtracts time from date and returns the resulting date. + +Arguments: +- ``date:`` Date to subtract time from in one of the supported + `date formats`. +- ``time:`` Time that is subtracted in one of the supported + `time formats`. +- ``result_format:`` Format of the returned date. +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. +- ``date_format:`` Possible `custom timestamp` format of ``date``. + +Examples: +| ${date} = | Subtract Time From Date | 2014-06-04 12:05:03.111 | 7 days | +| Should Be Equal | ${date} | 2014-05-28 12:05:03.111 | +| ${date} = | Subtract Time From Date | 2014-05-28 13:07:06.115 | 01:02:03:004 | +| Should Be Equal | ${date} | 2014-05-28 12:05:03.111 | + + + + + +time1 +time2 +result_format=number +exclude_millis=False + +Subtracts time from another time and returns the resulting time. + +Arguments: +- ``time1:`` Time to subtract another time from in one of + the supported `time formats`. +- ``time2:`` Time to subtract in one of the supported `time formats`. +- ``result_format:`` Format of the returned time. +- ``exclude_millis:`` When set to any true value, rounds and drops + milliseconds as explained in `millisecond handling`. + +Examples: +| ${time} = | Subtract Time From Time | 00:02:30 | 100 | +| Should Be Equal | ${time} | ${50} | +| ${time} = | Subtract Time From Time | ${time} | 1 minute | compact | +| Should Be Equal | ${time} | - 10s | + + + + diff --git a/libspecs/DependencyLibrary_bb1d1ad.libspec b/libspecs/DependencyLibrary_bb1d1ad.libspec new file mode 100644 index 000000000..95e914a1a --- /dev/null +++ b/libspecs/DependencyLibrary_bb1d1ad.libspec @@ -0,0 +1,55 @@ + + + +global +yes +Documentation for library ``DependencyLibrary``. + + +name + + + + + + + +name + + + + + + + +name + + + + + + + +name + + + + + + + +name + + + + + + + +name + + + + + + diff --git a/libspecs/Dialogs.libspec b/libspecs/Dialogs.libspec new file mode 100644 index 000000000..b02219559 --- /dev/null +++ b/libspecs/Dialogs.libspec @@ -0,0 +1,112 @@ + + +3.1 +global +yes +A test library providing dialogs for interacting with users. + +``Dialogs`` is Robot Framework's standard library that provides means +for pausing the test execution and getting input from users. The +dialogs are slightly different depending on whether tests are run on +Python, IronPython or Jython but they provide the same functionality. + +Long lines in the provided messages are wrapped automatically. If you want +to wrap lines manually, you can add newlines using the ``\n`` character +sequence. + +The library has a known limitation that it cannot be used with timeouts +on Python. Support for IronPython was added in Robot Framework 2.9.2. + + +message +default_error= + +Pauses test execution until user sets the keyword status. + +User can press either ``PASS`` or ``FAIL`` button. In the latter case execution +fails and an additional dialog is opened for defining the error message. + +``message`` is the instruction shown in the initial dialog and +``default_error`` is the default value shown in the possible error message +dialog. + + + + + +message +*values + +Pauses test execution and asks user to select a value. + +The selected value is returned. Pressing ``Cancel`` fails the keyword. + +``message`` is the instruction shown in the dialog and ``values`` are +the options given to the user. + +Example: +| ${user} = | Get Selection From User | Select user | user1 | user2 | admin | + + + + + +message +*values + +Pauses test execution and asks user to select multiple values. + +The selected values are returned as a list. Selecting no values is OK +and in that case the returned list is empty. Pressing ``Cancel`` fails +the keyword. + +``message`` is the instruction shown in the dialog and ``values`` are +the options given to the user. + +Example: +| ${users} = | Get Selections From User | Select users | user1 | user2 | admin | + +New in Robot Framework 3.1. + + + + + +message +default_value= +hidden=False + +Pauses test execution and asks user to input a value. + +Value typed by the user, or the possible default value, is returned. +Returning an empty value is fine, but pressing ``Cancel`` fails the keyword. + +``message`` is the instruction shown in the dialog and ``default_value`` is +the possible default value shown in the input field. + +If ``hidden`` is given a true value, the value typed by the user is hidden. +``hidden`` is considered true if it is a non-empty string not equal to +``false``, ``none`` or ``no``, case-insensitively. If it is not a string, +its truth value is got directly using same +[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. + +Example: +| ${username} = | Get Value From User | Input user name | default | +| ${password} = | Get Value From User | Input password | hidden=yes | + +Considering strings ``false`` and ``no`` to be false is new in RF 2.9 +and considering string ``none`` false is new in RF 3.0.3. + + + + + +message=Test execution paused. Press OK to continue. + +Pauses test execution until user clicks ``Ok`` button. + +``message`` is the message shown in the dialog. + + + + diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec new file mode 100644 index 000000000..90df83ed3 --- /dev/null +++ b/libspecs/Easter.libspec @@ -0,0 +1,15 @@ + + + +global +yes +Documentation for library ``Easter``. + + +who + + + + + + diff --git a/libspecs/JSONLibrary_17ae429.libspec b/libspecs/JSONLibrary_17ae429.libspec new file mode 100644 index 000000000..ce5576ce9 --- /dev/null +++ b/libspecs/JSONLibrary_17ae429.libspec @@ -0,0 +1,171 @@ + + + +global +yes +JSONLibrary is a robotframework testlibrary for manipulating JSON object (dictionary) + +You can get, add, update and delete your json object using JSONPath. + +== JSONPath Syntax == +| JSONPath | Description | +| $ | the root object/element | +| @ | the current object/element | +| . or [] | child operator | +| .. | recursive descent. JSONPath borrows this syntax from E4X | +| * | wildcard. All objects/element regardless their names. | +| [] | subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator. | +| [,] | Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set. | +| [start:end:step] | array slice operator borrowed from ES4 | +| ?() | applies a filter (script) expression. | +| () | script expression, using the underlying script engine. | + +== *** Known issue *** == +If there is a space in JSONPath expression, the module used by this library will throw an exception. +Therefore, please avoid the space in JSONPath expression if possible. + +*Example:* +| JSONPath | Exception? | +| $.[?(@.id == 1)] | Y | +| $.[?(@.id==1)] | N | +| $.[?(@.name=='test 123')] | N | + +== Example Test Cases == +| *** Settings *** | +| Library | JSONLibrary | +| | +| *** Test Cases *** | +| TestManipulatingJSON | +| ${json_object}= | Load JSON From File | example.json | +| ${object_to_add}= | Create Dictionary | country=Thailand | +| ${json_object}= | Add Object To Json | ${json_object} | $..address | ${object_to_add} | +| ${value}= | Get Value From Json | ${json_object} | $..country | +| Should Be Equal As Strings | ${value[0]} | Thailand | + + +json_object +json_path +object_to_add + +Add an dictionary or list object to json object using json_path + +Arguments: + - json_object: json as a dictionary object. + - json_path: jsonpath expression + - object_to_add: dictionary or list object to add to json_object which is matched by json_path + +Return new json object. + +Examples: +| ${dict}= | Create Dictionary | latitude=13.1234 | longitude=130.1234 | +| ${json}= | Add Object To Json | ${json} | $..address | ${dict} | + + + + + +json_object + +Convert JSON object to string + +Arguments: + - json_object: json as a dictionary object. + +Return new json_string + +Examples: +| ${json_str}= | Convert JSON To String | ${json_obj} | + + + + + +json_string + +Convert String to JSON object + +Arguments: + - json_string: JSON string + +Return new json_object + +Examples: +| ${json_object}= | Convert String to JSON | ${json_string} | + + + + + +json_object +json_path + +Delete Object From JSON using json_path + +Arguments: + - json_object: json as a dictionary object. + - json_path: jsonpath expression + +Return new json_object + +Examples: +| ${json_object}= | Delete Object From Json | ${json} | $..address.streetAddress | + + + + + +json_object +json_path + +Get Value From JSON using JSONPath + +Arguments: + - json_object: json as a dictionary object. + - json_path: jsonpath expression + +Return array of values + +Examples: +| ${values}= | Get Value From Json | ${json} | $..phone_number | + + + + + +file_name + +Load JSON from file. + +Return json as a dictionary object. + +Arguments: + - file_name: absolute json file name + +Return json object (list or dictionary) + +Examples: +| ${result}= | Load Json From File | /path/to/file.json | + + + + + +json_object +json_path +new_value + +Update value to JSON using JSONPath + +Arguments: + - json_object: json as a dictionary object. + - json_path: jsonpath expression + - new_value: value to update + +Return new json_object + +Examples: +| ${json_object}= | Update Value To Json | ${json} | $..address.streetAddress | Ratchadapisek Road | + + + + diff --git a/libspecs/JSONSchemaLibrary_c1d7acb.libspec b/libspecs/JSONSchemaLibrary_c1d7acb.libspec new file mode 100644 index 000000000..1e176c935 --- /dev/null +++ b/libspecs/JSONSchemaLibrary_c1d7acb.libspec @@ -0,0 +1,31 @@ + + + +global +yes +JSONSchemaLibrary is a library to validate JSON against JSON Schema definitions using Robot Framework. + +It uses the jsonschema library for Python: https://github.com/Julian/jsonschema + +*Before running tests* + +Prior to running JSONSchemaLibrary tests, you must make sure that the JSON Schema definitions are available +somewhere on the local filesystem. The default is to look in a subdirectory called `schemas`. + + +schema_location=schemas + +Initialize self. See help(type(self)) for accurate signature. + + + + + +schema_filename +sample + +Validates the sample JSON against the given schema. + + + + diff --git a/libspecs/MockServerLibrary_03fd3d4.libspec b/libspecs/MockServerLibrary_03fd3d4.libspec new file mode 100644 index 000000000..46a38b604 --- /dev/null +++ b/libspecs/MockServerLibrary_03fd3d4.libspec @@ -0,0 +1,258 @@ + + +0.0.6 +global +yes +Robot Framework library for interacting with [http://www.mock-server.com|MockServer] + +The purpose of this library is to provide a keyword-based API +towards MockServer to be used in robot tests. The project is hosted in +[https://github.com/etsi-cti-admin/robotframework-mockserver|GitHub], +and packages are released to PyPI. + += Installation = + +| pip install robotframework-mockserver + += Importing = + +The library does not currently support any import arguments, so use the +following setting to take the library into use: + +| Library | MockServerLibrary | + + +path + +Clears expectations and requests for a specific endpoint from the mockserver. + +`path` is the url of the endpoint for which to clean expectations and requests, e.g. /api + + + + + +method +path +response_code=200 +response_headers=None +body_type=JSON +response_body=None + +Creates a default expectation to be used by mockserver. + +`method` is the HTTP method of the mocked endpoint + +`path` is the url of the mocked endpoint, e.g. /api + +`response_code` is the HTTP status code of the response + +`response_headers` is a dictionary of headers to be added to the response + +`body_type` is the type of the response body, e.g. JSON + +`response_body` is a dictonary of JSON attribute(s) to be added to the response body + + + + + +request +response +count=1 +unlimited=True + +Creates a mock expectation to be used by mockserver. + +`request` is a mock request matcher in a dictionary format. + +`response` is a mock response in a dictionary format. + +`count` is the number of expected requests + +`unlimited` is a boolean value which, if enabled, allows unspecified number of +requests to reply to + + + + + +data + +Creates a mock expectation with defined data to be used by mockserver. + +`data` is a dictionary or JSON string with mock data. Please see +[https://app.swaggerhub.com/apis/jamesdbloom/mock-server_api|MockServer documentation] +for the detailed API reference. + + + + + +request +forward +count=1 +unlimited=True + +Creates a mock expectation with request and forward action to be used by mockserver. + +`request` is a mock request matcher in a dictionary format. + +`forward` is a mock forward in a dictionary format. + +`count` is the number of expected requests + +`unlimited` is a boolean value which, if enabled, allows unspecified number of +requests to reply to + + + + + +path +delay=1 +unit=SECONDS + +Creates a mock http override forward to be used by mockserver. + +Returns the http forward in a dictionary format. + +`path` is the new url where to forward the request + +`delay` is the delay of the forward action + +`unit` is the unit of the delay time (default "SECONDS") + + + + + +method +path +body_type=JSON +body=None +exact=True + +Creates a mock request matcher to be used by mockserver. + +Returns the request matcher in a dictionary format. + +`method` is the HTTP method of the mocked endpoint + +`path` is the url of the mocked endpoint, e.g. /api + +`body_type` is the type of the request body, e.g. JSON + +`body` is a dictionary of the json attribute(s) to match + +`exact` is a boolean value which specifies whether the body should match fully (=true), +or if only specified fields should match (=false) + + + + + +status_code +headers=None +body_type=JSON +body=None + +Creates a mock response to be used by mockserver. + +Returns the response in a dictionary format. + +`status_code` is the HTTP status code of the response + +`headers` is a dictionary of headers to be added to the response + +`body_type` is the type of the response body, e.g. JSON + +`body` is a dictonary of JSON attribute(s) to be added to the response body + + + + + +base_url + +Creates an HTTP session towards mockserver. + +`base_url` is the full url (including port, if applicable) of the mockserver, +e.g. http://localhost:1080. + + + + + + +Dumps logs at the mockserver. + + + + + + +Clears all expectations and received requests from the mockserver. + + + + + +path + +Retrieves expectations from the mockserver. + +`path` is the url of the endpoint for which to retrieve expectations, e.g. /api + + + + + +path + +Retrieves requests from the mockserver + +`path` is the url of the endpoint for which to retrieve requests, e.g. /api + + + + + +request +count=1 +exact=True + +Verifies that the mockserver has received a specific request. + +`request` is a request expectation created using the keyword `Create Mock Request Matcher` + +`count` is the minimum expected number of requests + +`exact` specifies whether the expected count should match the actual received count + + + + + +data + +Verifies a mock expectation with specified data. + +`data` is a dictionary or JSON string with mock data. Please see +[https://app.swaggerhub.com/apis/jamesdbloom/mock-server_api|MockServer documentation] +for the detailed API reference. + + + + + +requests + +Verifies that the mockserver has received a specific ordered request sequence. + +`requests` is a list of request expectations created using the keyword +`Create Mock Request Matcher` + + + + diff --git a/libspecs/OperatingSystem.libspec b/libspecs/OperatingSystem.libspec new file mode 100644 index 000000000..2ec003cd7 --- /dev/null +++ b/libspecs/OperatingSystem.libspec @@ -0,0 +1,1138 @@ + + +3.1 +global +yes +A test library providing keywords for OS related tasks. + +``OperatingSystem`` is Robot Framework's standard library that +enables various operating system related tasks to be performed in +the system where Robot Framework is running. It can, among other +things, execute commands (e.g. `Run`), create and remove files and +directories (e.g. `Create File`, `Remove Directory`), check +whether files or directories exists or contain something +(e.g. `File Should Exist`, `Directory Should Be Empty`) and +manipulate environment variables (e.g. `Set Environment Variable`). + +== Table of contents == + +- `Path separators` +- `Pattern matching` +- `Tilde expansion` +- `Boolean arguments` +- `Example` +- `Shortcuts` +- `Keywords` + += Path separators = + +Because Robot Framework uses the backslash (``\``) as an escape character +in the test data, using a literal backslash requires duplicating it like +in ``c:\\path\\file.txt``. That can be inconvenient especially with +longer Windows paths, and thus all keywords expecting paths as arguments +convert forward slashes to backslashes automatically on Windows. This also +means that paths like ``${CURDIR}/path/file.txt`` are operating system +independent. + +Notice that the automatic path separator conversion does not work if +the path is only a part of an argument like with `Run` and `Start Process` +keywords. In these cases the built-in variable ``${/}`` that contains +``\`` or ``/``, depending on the operating system, can be used instead. + += Pattern matching = + +Some keywords allow their arguments to be specified as +[http://en.wikipedia.org/wiki/Glob_(programming)|glob patterns] where: + +| ``*`` | matches any string, even an empty string | +| ``?`` | matches any single character | +| ``[chars]`` | matches one character in the bracket | +| ``[!chars]`` | matches one character not in the bracket | +| ``[a-z]`` | matches one character from the range in the bracket | +| ``[!a-z]`` | matches one character not from the range in the bracket | + +Unless otherwise noted, matching is case-insensitive on +case-insensitive operating systems such as Windows. + +Starting from Robot Framework 2.9.1, globbing is not done if the given path +matches an existing file even if it would contain a glob pattern. + += Tilde expansion = + +Paths beginning with ``~`` or ``~username`` are expanded to the current or +specified user's home directory, respectively. The resulting path is +operating system dependent, but typically e.g. ``~/robot`` is expanded to +``C:\Users\<user>\robot`` on Windows and ``/home/<user>/robot`` on +Unixes. + +The ``~username`` form does not work on Jython. + += Boolean arguments = + +Some keywords accept arguments that are handled as Boolean values true or +false. If such an argument is given as a string, it is considered false if +it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or +``0``, case-insensitively. Other strings are considered true regardless +their value, and other argument types are tested using the same +[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. + +True examples: +| `Remove Directory` | ${path} | recursive=True | # Strings are generally true. | +| `Remove Directory` | ${path} | recursive=yes | # Same as the above. | +| `Remove Directory` | ${path} | recursive=${TRUE} | # Python ``True`` is true. | +| `Remove Directory` | ${path} | recursive=${42} | # Numbers other than 0 are true. | + +False examples: +| `Remove Directory` | ${path} | recursive=False | # String ``false`` is false. | +| `Remove Directory` | ${path} | recursive=no | # Also string ``no`` is false. | +| `Remove Directory` | ${path} | recursive=${EMPTY} | # Empty string is false. | +| `Remove Directory` | ${path} | recursive=${FALSE} | # Python ``False`` is false. | + +Considering string ``NONE`` false is new in Robot Framework 3.0.3 and +considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. + += Example = + +| =Setting= | =Value= | +| Library | OperatingSystem | + +| =Variable= | =Value= | +| ${PATH} | ${CURDIR}/example.txt | + +| =Test Case= | =Action= | =Argument= | =Argument= | +| Example | Create File | ${PATH} | Some text | +| | File Should Exist | ${PATH} | | +| | Copy File | ${PATH} | ~/file.txt | +| | ${output} = | Run | ${TEMPDIR}${/}script.py arg | + + +name +*values +**config + +Appends given ``values`` to environment variable ``name``. + +If the environment variable already exists, values are added after it, +and otherwise a new environment variable is created. + +Values are, by default, joined together using the operating system +path separator (``;`` on Windows, ``:`` elsewhere). This can be changed +by giving a separator after the values like ``separator=value``. No +other configuration parameters are accepted. + +Examples (assuming ``NAME`` and ``NAME2`` do not exist initially): +| Append To Environment Variable | NAME | first | | +| Should Be Equal | %{NAME} | first | | +| Append To Environment Variable | NAME | second | third | +| Should Be Equal | %{NAME} | first${:}second${:}third | +| Append To Environment Variable | NAME2 | first | separator=- | +| Should Be Equal | %{NAME2} | first | | +| Append To Environment Variable | NAME2 | second | separator=- | +| Should Be Equal | %{NAME2} | first-second | + + + + + +path +content +encoding=UTF-8 + +Appends the given content to the specified file. + +If the file does not exists, this keyword works exactly the same +way as `Create File`. + + + + + +source +destination + +Copies the source directory into the destination. + +If the destination exists, the source is copied under it. Otherwise +the destination directory and the possible missing intermediate +directories are created. + + + + + +source +destination + +Copies the source file into the destination. + +Source must be a path to an existing file or a glob pattern (see +`Pattern matching`) that matches exactly one file. How the +destination is interpreted is explained below. + +1) If the destination is an existing file, the source file is copied +over it. + +2) If the destination is an existing directory, the source file is +copied into it. A possible file with the same name as the source is +overwritten. + +3) If the destination does not exist and it ends with a path +separator (``/`` or ``\``), it is considered a directory. That +directory is created and a source file copied into it. +Possible missing intermediate directories are also created. + +4) If the destination does not exist and it does not end with a path +separator, it is considered a file. If the path to the file does not +exist, it is created. + +The resulting destination path is returned since Robot Framework 2.9.2. + +See also `Copy Files`, `Move File`, and `Move Files`. + + + + + +*sources_and_destination + +Copies specified files to the target directory. + +Source files can be given as exact paths and as glob patterns (see +`Pattern matching`). At least one source must be given, but it is +not an error if it is a pattern that does not match anything. + +Last argument must be the destination directory. If the destination +does not exist, it will be created. + +Examples: +| Copy Files | ${dir}/file1.txt | ${dir}/file2.txt | ${dir2} | +| Copy Files | ${dir}/file-*.txt | ${dir2} | | + +See also `Copy File`, `Move File`, and `Move Files`. + + + + + +path +pattern=None + +Wrapper for `Count Items In Directory` returning only directory count. + + + + + +path +pattern=None + +Wrapper for `Count Items In Directory` returning only file count. + + + + + +path +pattern=None + +Returns and logs the number of all items in the given directory. + +The argument ``pattern`` has the same semantics as with `List Directory` +keyword. The count is returned as an integer, so it must be checked e.g. +with the built-in keyword `Should Be Equal As Integers`. + + + + + +path +content + +Creates a binary file with the given content. + +If content is given as a Unicode string, it is first converted to bytes +character by character. All characters with ordinal below 256 can be +used and are converted to bytes with same values. Using characters +with higher ordinal is an error. + +Byte strings, and possible other types, are written to the file as is. + +If the directory for the file does not exist, it is created, along +with missing intermediate directories. + +Examples: +| Create Binary File | ${dir}/example.png | ${image content} | +| Create Binary File | ${path} | \x01\x00\xe4\x00 | + +Use `Create File` if you want to create a text file using a certain +encoding. `File Should Not Exist` can be used to avoid overwriting +existing files. + + + + + +path + +Creates the specified directory. + +Also possible intermediate directories are created. Passes if the +directory already exists, but fails if the path exists and is not +a directory. + + + + + +path +content= +encoding=UTF-8 + +Creates a file with the given content and encoding. + +If the directory for the file does not exist, it is created, along +with missing intermediate directories. + +See `Get File` for more information about possible ``encoding`` values, +including special values ``SYSTEM`` and ``CONSOLE``. + +Examples: +| Create File | ${dir}/example.txt | Hello, world! | | +| Create File | ${path} | Hyv\xe4 esimerkki | Latin-1 | +| Create File | /tmp/foo.txt | ${content} | SYSTEM | + +Use `Append To File` if you want to append to an existing file +and `Create Binary File` if you need to write bytes without encoding. +`File Should Not Exist` can be used to avoid overwriting existing +files. + +The support for ``SYSTEM`` and ``CONSOLE`` encodings is new in Robot +Framework 3.0. + + + + + +path +msg=None + +Fails unless the specified directory is empty. + +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails unless the given path points to an existing directory. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails if the specified directory is empty. + +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails if the given path points to an existing file. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +The default error message can be overridden with the ``msg`` argument. + + + + + +path + +Deletes all the content from the given directory. + +Deletes both files and sub-directories, but the specified directory +itself if not removed. Use `Remove Directory` if you want to remove +the whole directory. + + + + + +name +msg=None + +Fails if the specified environment variable is not set. + +The default error message can be overridden with the ``msg`` argument. + + + + + +name +msg=None + +Fails if the specified environment variable is set. + +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails unless the specified file is empty. + +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails unless the given ``path`` points to an existing file. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails if the specified directory is empty. + +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails if the given path points to an existing file. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +The default error message can be overridden with the ``msg`` argument. + + + + + +path + +Returns the contents of a specified file. + +This keyword reads the specified file and returns the contents as is. +See also `Get File`. + + + + + +name +default=None + +Returns the value of an environment variable with the given name. + +If no such environment variable is set, returns the default value, if +given. Otherwise fails the test case. + +Returned variables are automatically decoded to Unicode using +the system encoding. + +Note that you can also access environment variables directly using +the variable syntax ``%{ENV_VAR_NAME}``. + + + + + + +Returns currently available environment variables as a dictionary. + +Both keys and values are decoded to Unicode using the system encoding. +Altering the returned dictionary has no effect on the actual environment +variables. + + + + + +path +encoding=UTF-8 +encoding_errors=strict + +Returns the contents of a specified file. + +This keyword reads the specified file and returns the contents. +Line breaks in content are converted to platform independent form. +See also `Get Binary File`. + +``encoding`` defines the encoding of the file. The default value is +``UTF-8``, which means that UTF-8 and ASCII encoded files are read +correctly. In addition to the encodings supported by the underlying +Python implementation, the following special encoding values can be +used: + +- ``SYSTEM``: Use the default system encoding. +- ``CONSOLE``: Use the console encoding. Outside Windows this is same + as the system encoding. + +``encoding_errors`` argument controls what to do if decoding some bytes +fails. All values accepted by ``decode`` method in Python are valid, but +in practice the following values are most useful: + +- ``strict``: Fail if characters cannot be decoded (default). +- ``ignore``: Ignore characters that cannot be decoded. +- ``replace``: Replace characters that cannot be decoded with + a replacement character. + +Support for ``SYSTEM`` and ``CONSOLE`` encodings in Robot Framework 3.0. + + + + + +path + +Returns and logs file size as an integer in bytes. + + + + + +path +format=timestamp + +Returns the last modification time of a file or directory. + +How time is returned is determined based on the given ``format`` +string as follows. Note that all checks are case-insensitive. +Returned time is also automatically logged. + +1) If ``format`` contains the word ``epoch``, the time is returned + in seconds after the UNIX epoch. The return value is always + an integer. + +2) If ``format`` contains any of the words ``year``, ``month``, + ``day``, ``hour``, ``min`` or ``sec``, only the selected parts are + returned. The order of the returned parts is always the one + in the previous sentence and the order of the words in + ``format`` is not significant. The parts are returned as + zero-padded strings (e.g. May -> ``05``). + +3) Otherwise, and by default, the time is returned as a + timestamp string in the format ``2006-02-24 15:08:31``. + +Examples (when the modified time of ``${CURDIR}`` is +2006-03-29 15:06:21): +| ${time} = | Get Modified Time | ${CURDIR} | +| ${secs} = | Get Modified Time | ${CURDIR} | epoch | +| ${year} = | Get Modified Time | ${CURDIR} | return year | +| ${y} | ${d} = | Get Modified Time | ${CURDIR} | year,day | +| @{time} = | Get Modified Time | ${CURDIR} | year,month,day,hour,min,sec | +=> +- ${time} = '2006-03-29 15:06:21' +- ${secs} = 1143637581 +- ${year} = '2006' +- ${y} = '2006' & ${d} = '29' +- @{time} = ['2006', '03', '29', '15', '06', '21'] + + + + + +path +pattern +encoding=UTF-8 +encoding_errors=strict + +Returns the lines of the specified file that match the ``pattern``. + +This keyword reads a file from the file system using the defined +``path``, ``encoding`` and ``encoding_errors`` similarly as `Get File`. +A difference is that only the lines that match the given ``pattern`` are +returned. Lines are returned as a single string catenated back together +with newlines and the number of matched lines is automatically logged. +Possible trailing newline is never returned. + +A line matches if it contains the ``pattern`` anywhere in it and +it *does not need to match the pattern fully*. The pattern +matching syntax is explained in `introduction`, and in this +case matching is case-sensitive. + +Examples: +| ${errors} = | Grep File | /var/log/myapp.log | ERROR | +| ${ret} = | Grep File | ${CURDIR}/file.txt | [Ww]ildc??d ex*ple | + +If more complex pattern matching is needed, it is possible to use +`Get File` in combination with String library keywords like `Get +Lines Matching Regexp`. + + + + + +base +*parts + +Joins the given path part(s) to the given base path. + +The path separator (``/`` or ``\``) is inserted when needed and +the possible absolute paths handled as expected. The resulted +path is also normalized. + +Examples: +| ${path} = | Join Path | my | path | +| ${p2} = | Join Path | my/ | path/ | +| ${p3} = | Join Path | my | path | my | file.txt | +| ${p4} = | Join Path | my | /path | +| ${p5} = | Join Path | /my/path/ | .. | path2 | +=> +- ${path} = 'my/path' +- ${p2} = 'my/path' +- ${p3} = 'my/path/my/file.txt' +- ${p4} = '/path' +- ${p5} = '/my/path2' + + + + + +base +*paths + +Joins given paths with base and returns resulted paths. + +See `Join Path` for more information. + +Examples: +| @{p1} = | Join Paths | base | example | other | | +| @{p2} = | Join Paths | /my/base | /example | other | | +| @{p3} = | Join Paths | my/base | example/path/ | other | one/more | +=> +- @{p1} = ['base/example', 'base/other'] +- @{p2} = ['/example', '/my/base/other'] +- @{p3} = ['my/base/example/path', 'my/base/other', 'my/base/one/more'] + + + + + +path +pattern=None +absolute=False + +Wrapper for `List Directory` that returns only directories. + + + + + +path +pattern=None +absolute=False + +Returns and logs items in a directory, optionally filtered with ``pattern``. + +File and directory names are returned in case-sensitive alphabetical +order, e.g. ``['A Name', 'Second', 'a lower case name', 'one more']``. +Implicit directories ``.`` and ``..`` are not returned. The returned +items are automatically logged. + +File and directory names are returned relative to the given path +(e.g. ``'file.txt'``) by default. If you want them be returned in +absolute format (e.g. ``'/home/robot/file.txt'``), give the ``absolute`` +argument a true value (see `Boolean arguments`). + +If ``pattern`` is given, only items matching it are returned. The pattern +matching syntax is explained in `introduction`, and in this case +matching is case-sensitive. + +Examples (using also other `List Directory` variants): +| @{items} = | List Directory | ${TEMPDIR} | +| @{files} = | List Files In Directory | /tmp | *.txt | absolute | +| ${count} = | Count Files In Directory | ${CURDIR} | ??? | + + + + + +path +pattern=None +absolute=False + +Wrapper for `List Directory` that returns only files. + + + + + +level=INFO + +Logs all environment variables using the given log level. + +Environment variables are also returned the same way as with +`Get Environment Variables` keyword. + + + + + +path +encoding=UTF-8 +encoding_errors=strict + +Wrapper for `Get File` that also logs the returned file. + +The file is logged with the INFO level. If you want something else, +just use `Get File` and the built-in keyword `Log` with the desired +level. + +See `Get File` for more information about ``encoding`` and +``encoding_errors`` arguments. + + + + + +source +destination + +Moves the source directory into a destination. + +Uses `Copy Directory` keyword internally, and ``source`` and +``destination`` arguments have exactly same semantics as with +that keyword. + + + + + +source +destination + +Moves the source file into the destination. + +Arguments have exactly same semantics as with `Copy File` keyword. +Destination file path is returned since Robot Framework 2.9.2. + +If the source and destination are on the same filesystem, rename +operation is used. Otherwise file is copied to the destination +filesystem and then removed from the original filesystem. + +See also `Move Files`, `Copy File`, and `Copy Files`. + + + + + +*sources_and_destination + +Moves specified files to the target directory. + +Arguments have exactly same semantics as with `Copy Files` keyword. + +See also `Move File`, `Copy File`, and `Copy Files`. + + + + + +path +case_normalize=False + +Normalizes the given path. + +- Collapses redundant separators and up-level references. +- Converts ``/`` to ``\`` on Windows. +- Replaces initial ``~`` or ``~user`` by that user's home directory. + The latter is not supported on Jython. +- If ``case_normalize`` is given a true value (see `Boolean arguments`) + on Windows, converts the path to all lowercase. New in Robot + Framework 3.1. + +Examples: +| ${path1} = | Normalize Path | abc/ | +| ${path2} = | Normalize Path | abc/../def | +| ${path3} = | Normalize Path | abc/./def//ghi | +| ${path4} = | Normalize Path | ~robot/stuff | +=> +- ${path1} = 'abc' +- ${path2} = 'def' +- ${path3} = 'abc/def/ghi' +- ${path4} = '/home/robot/stuff' + +On Windows result would use ``\`` instead of ``/`` and home directory +would be different. + + + + + +path +recursive=False + +Removes the directory pointed to by the given ``path``. + +If the second argument ``recursive`` is given a true value (see +`Boolean arguments`), the directory is removed recursively. Otherwise +removing fails if the directory is not empty. + +If the directory pointed to by the ``path`` does not exist, the keyword +passes, but it fails, if the ``path`` points to a file. + + + + + +*names + +Deletes the specified environment variable. + +Does nothing if the environment variable is not set. + +It is possible to remove multiple variables by passing them to this +keyword as separate arguments. + + + + + +path + +Removes a file with the given path. + +Passes if the file does not exist, but fails if the path does +not point to a regular file (e.g. it points to a directory). + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +If the path is a pattern, all files matching it are removed. + + + + + +*paths + +Uses `Remove File` to remove multiple files one-by-one. + +Example: +| Remove Files | ${TEMPDIR}${/}foo.txt | ${TEMPDIR}${/}bar.txt | ${TEMPDIR}${/}zap.txt | + + + + + +command + +Runs the given command in the system and returns the output. + +The execution status of the command *is not checked* by this +keyword, and it must be done separately based on the returned +output. If the execution return code is needed, either `Run +And Return RC` or `Run And Return RC And Output` can be used. + +The standard error stream is automatically redirected to the standard +output stream by adding ``2>&1`` after the executed command. This +automatic redirection is done only when the executed command does not +contain additional output redirections. You can thus freely forward +the standard error somewhere else, for example, like +``my_command 2>stderr.txt``. + +The returned output contains everything written into the standard +output or error streams by the command (unless either of them +is redirected explicitly). Many commands add an extra newline +(``\n``) after the output to make it easier to read in the +console. To ease processing the returned output, this possible +trailing newline is stripped by this keyword. + +Examples: +| ${output} = | Run | ls -lhF /tmp | +| Log | ${output} | +| ${result} = | Run | ${CURDIR}${/}tester.py arg1 arg2 | +| Should Not Contain | ${result} | FAIL | +| ${stdout} = | Run | /opt/script.sh 2>/tmp/stderr.txt | +| Should Be Equal | ${stdout} | TEST PASSED | +| File Should Be Empty | /tmp/stderr.txt | + +*TIP:* `Run Process` keyword provided by the +[http://robotframework.org/robotframework/latest/libraries/Process.html| +Process library] supports better process configuration and is generally +recommended as a replacement for this keyword. + + + + + +command + +Runs the given command in the system and returns the return code. + +The return code (RC) is returned as a positive integer in +range from 0 to 255 as returned by the executed command. On +some operating systems (notable Windows) original return codes +can be something else, but this keyword always maps them to +the 0-255 range. Since the RC is an integer, it must be +checked e.g. with the keyword `Should Be Equal As Integers` +instead of `Should Be Equal` (both are built-in keywords). + +Examples: +| ${rc} = | Run and Return RC | ${CURDIR}${/}script.py arg | +| Should Be Equal As Integers | ${rc} | 0 | +| ${rc} = | Run and Return RC | /path/to/example.rb arg1 arg2 | +| Should Be True | 0 < ${rc} < 42 | + +See `Run` and `Run And Return RC And Output` if you need to get the +output of the executed command. + +*TIP:* `Run Process` keyword provided by the +[http://robotframework.org/robotframework/latest/libraries/Process.html| +Process library] supports better process configuration and is generally +recommended as a replacement for this keyword. + + + + + +command + +Runs the given command in the system and returns the RC and output. + +The return code (RC) is returned similarly as with `Run And Return RC` +and the output similarly as with `Run`. + +Examples: +| ${rc} | ${output} = | Run and Return RC and Output | ${CURDIR}${/}mytool | +| Should Be Equal As Integers | ${rc} | 0 | +| Should Not Contain | ${output} | FAIL | +| ${rc} | ${stdout} = | Run and Return RC and Output | /opt/script.sh 2>/tmp/stderr.txt | +| Should Be True | ${rc} > 42 | +| Should Be Equal | ${stdout} | TEST PASSED | +| File Should Be Empty | /tmp/stderr.txt | + +*TIP:* `Run Process` keyword provided by the +[http://robotframework.org/robotframework/latest/libraries/Process.html| +Process library] supports better process configuration and is generally +recommended as a replacement for this keyword. + + + + + +name +value + +Sets an environment variable to a specified value. + +Values are converted to strings automatically. Set variables are +automatically encoded using the system encoding. + + + + + +path +mtime + +Sets the file modification and access times. + +Changes the modification and access times of the given file to +the value determined by ``mtime``. The time can be given in +different formats described below. Note that all checks +involving strings are case-insensitive. Modified time can only +be set to regular files. + +1) If ``mtime`` is a number, or a string that can be converted + to a number, it is interpreted as seconds since the UNIX + epoch (1970-01-01 00:00:00 UTC). This documentation was + originally written about 1177654467 seconds after the epoch. + +2) If ``mtime`` is a timestamp, that time will be used. Valid + timestamp formats are ``YYYY-MM-DD hh:mm:ss`` and + ``YYYYMMDD hhmmss``. + +3) If ``mtime`` is equal to ``NOW``, the current local time is used. + +4) If ``mtime`` is equal to ``UTC``, the current time in + [http://en.wikipedia.org/wiki/Coordinated_Universal_Time|UTC] + is used. + +5) If ``mtime`` is in the format like ``NOW - 1 day`` or ``UTC + 1 + hour 30 min``, the current local/UTC time plus/minus the time + specified with the time string is used. The time string format + is described in an appendix of Robot Framework User Guide. + +Examples: +| Set Modified Time | /path/file | 1177654467 | # Time given as epoch seconds | +| Set Modified Time | /path/file | 2007-04-27 9:14:27 | # Time given as a timestamp | +| Set Modified Time | /path/file | NOW | # The local time of execution | +| Set Modified Time | /path/file | NOW - 1 day | # 1 day subtracted from the local time | +| Set Modified Time | /path/file | UTC + 1h 2min 3s | # 1h 2min 3s added to the UTC time | + + + + + +path +msg=None + +Fails unless the given path (file or directory) exists. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +The default error message can be overridden with the ``msg`` argument. + + + + + +path +msg=None + +Fails if the given path (file or directory) exists. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +The default error message can be overridden with the ``msg`` argument. + + + + + +path + +Splits the extension from the given path. + +The given path is first normalized (e.g. possible trailing +path separators removed, special directories ``..`` and ``.`` +removed). The base path and extension are returned as separate +components so that the dot used as an extension separator is +removed. If the path contains no extension, an empty string is +returned for it. Possible leading and trailing dots in the file +name are never considered to be extension separators. + +Examples: +| ${path} | ${ext} = | Split Extension | file.extension | +| ${p2} | ${e2} = | Split Extension | path/file.ext | +| ${p3} | ${e3} = | Split Extension | path/file | +| ${p4} | ${e4} = | Split Extension | p1/../p2/file.ext | +| ${p5} | ${e5} = | Split Extension | path/.file.ext | +| ${p6} | ${e6} = | Split Extension | path/.file | +=> +- ${path} = 'file' & ${ext} = 'extension' +- ${p2} = 'path/file' & ${e2} = 'ext' +- ${p3} = 'path/file' & ${e3} = '' +- ${p4} = 'p2/file' & ${e4} = 'ext' +- ${p5} = 'path/.file' & ${e5} = 'ext' +- ${p6} = 'path/.file' & ${e6} = '' + + + + + +path + +Splits the given path from the last path separator (``/`` or ``\``). + +The given path is first normalized (e.g. a possible trailing +path separator is removed, special directories ``..`` and ``.`` +removed). The parts that are split are returned as separate +components. + +Examples: +| ${path1} | ${dir} = | Split Path | abc/def | +| ${path2} | ${file} = | Split Path | abc/def/ghi.txt | +| ${path3} | ${d2} = | Split Path | abc/../def/ghi/ | +=> +- ${path1} = 'abc' & ${dir} = 'def' +- ${path2} = 'abc/def' & ${file} = 'ghi.txt' +- ${path3} = 'def' & ${d2} = 'ghi' + + + + + +path + +Emulates the UNIX touch command. + +Creates a file, if it does not exist. Otherwise changes its access and +modification times to the current time. + +Fails if used with the directories or the parent directory of the given +file does not exist. + + + + + +path +timeout=1 minute + +Waits until the given file or directory is created. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +If the path is a pattern, the keyword returns when an item matching +it is created. + +The optional ``timeout`` can be used to control the maximum time of +waiting. The timeout is given as a timeout string, e.g. in a format +``15 seconds``, ``1min 10s`` or just ``10``. The time string format is +described in an appendix of Robot Framework User Guide. + +If the timeout is negative, the keyword is never timed-out. The keyword +returns immediately, if the path already exists. + + + + + +path +timeout=1 minute + +Waits until the given file or directory is removed. + +The path can be given as an exact path or as a glob pattern. +The pattern matching syntax is explained in `introduction`. +If the path is a pattern, the keyword waits until all matching +items are removed. + +The optional ``timeout`` can be used to control the maximum time of +waiting. The timeout is given as a timeout string, e.g. in a format +``15 seconds``, ``1min 10s`` or just ``10``. The time string format is +described in an appendix of Robot Framework User Guide. + +If the timeout is negative, the keyword is never timed-out. The keyword +returns immediately, if the path does not exist in the first place. + + + + diff --git a/libspecs/Process.libspec b/libspecs/Process.libspec new file mode 100644 index 000000000..ad9fe354c --- /dev/null +++ b/libspecs/Process.libspec @@ -0,0 +1,637 @@ + + +3.1 +global +yes +Robot Framework test library for running processes. + +This library utilizes Python's +[http://docs.python.org/library/subprocess.html|subprocess] +module and its +[http://docs.python.org/library/subprocess.html#popen-constructor|Popen] +class. + +The library has following main usages: + +- Running processes in system and waiting for their completion using + `Run Process` keyword. +- Starting processes on background using `Start Process`. +- Waiting started process to complete using `Wait For Process` or + stopping them with `Terminate Process` or `Terminate All Processes`. + +== Table of contents == + +- `Specifying command and arguments` +- `Process configuration` +- `Active process` +- `Result object` +- `Boolean arguments` +- `Example` +- `Shortcuts` +- `Keywords` + += Specifying command and arguments = + +Both `Run Process` and `Start Process` accept the command to execute and +all arguments passed to the command as separate arguments. This makes usage +convenient and also allows these keywords to automatically escape possible +spaces and other special characters in commands and arguments. Notice that +if a command accepts options that themselves accept values, these options +and their values must be given as separate arguments. + +When `running processes in shell`, it is also possible to give the whole +command to execute as a single string. The command can then contain +multiple commands to be run together. When using this approach, the caller +is responsible on escaping. + +Examples: +| `Run Process` | ${tools}${/}prog.py | argument | second arg with spaces | +| `Run Process` | java | -jar | ${jars}${/}example.jar | --option | value | +| `Run Process` | prog.py "one arg" && tool.sh | shell=yes | cwd=${tools} | + +Possible non-string arguments are converted to strings automatically. + += Process configuration = + +`Run Process` and `Start Process` keywords can be configured using +optional ``**configuration`` keyword arguments. Configuration arguments +must be given after other arguments passed to these keywords and must +use syntax like ``name=value``. Available configuration arguments are +listed below and discussed further in sections afterwards. + +| = Name = | = Explanation = | +| shell | Specifies whether to run the command in shell or not. | +| cwd | Specifies the working directory. | +| env | Specifies environment variables given to the process. | +| env:<name> | Overrides the named environment variable(s) only. | +| stdout | Path of a file where to write standard output. | +| stderr | Path of a file where to write standard error. | +| output_encoding | Encoding to use when reading command outputs. | +| alias | Alias given to the process. | + +Note that because ``**configuration`` is passed using ``name=value`` syntax, +possible equal signs in other arguments passed to `Run Process` and +`Start Process` must be escaped with a backslash like ``name\=value``. +See `Run Process` for an example. + +== Running processes in shell == + +The ``shell`` argument specifies whether to run the process in a shell or +not. By default shell is not used, which means that shell specific commands, +like ``copy`` and ``dir`` on Windows, are not available. You can, however, +run shell scripts and batch files without using a shell. + +Giving the ``shell`` argument any non-false value, such as ``shell=True``, +changes the program to be executed in a shell. It allows using the shell +capabilities, but can also make the process invocation operating system +dependent. Having a shell between the actually started process and this +library can also interfere communication with the process such as stopping +it and reading its outputs. Because of these problems, it is recommended +to use the shell only when absolutely necessary. + +When using a shell it is possible to give the whole command to execute +as a single string. See `Specifying command and arguments` section for +examples and more details in general. + +== Current working directory == + +By default the child process will be executed in the same directory +as the parent process, the process running tests, is executed. This +can be changed by giving an alternative location using the ``cwd`` argument. +Forward slashes in the given path are automatically converted to +backslashes on Windows. + +`Standard output and error streams`, when redirected to files, +are also relative to the current working directory possibly set using +the ``cwd`` argument. + +Example: +| `Run Process` | prog.exe | cwd=${ROOT}/directory | stdout=stdout.txt | + +== Environment variables == + +By default the child process will get a copy of the parent process's +environment variables. The ``env`` argument can be used to give the +child a custom environment as a Python dictionary. If there is a need +to specify only certain environment variable, it is possible to use the +``env:<name>=<value>`` format to set or override only that named variables. +It is also possible to use these two approaches together. + +Examples: +| `Run Process` | program | env=${environ} | +| `Run Process` | program | env:http_proxy=10.144.1.10:8080 | env:PATH=%{PATH}${:}${PROGDIR} | +| `Run Process` | program | env=${environ} | env:EXTRA=value | + +== Standard output and error streams == + +By default processes are run so that their standard output and standard +error streams are kept in the memory. This works fine normally, +but if there is a lot of output, the output buffers may get full and +the program can hang. Additionally on Jython, everything written to +these in-memory buffers can be lost if the process is terminated. + +To avoid the above mentioned problems, it is possible to use ``stdout`` +and ``stderr`` arguments to specify files on the file system where to +redirect the outputs. This can also be useful if other processes or +other keywords need to read or manipulate the outputs somehow. + +Given ``stdout`` and ``stderr`` paths are relative to the `current working +directory`. Forward slashes in the given paths are automatically converted +to backslashes on Windows. + +As a special feature, it is possible to redirect the standard error to +the standard output by using ``stderr=STDOUT``. + +Regardless are outputs redirected to files or not, they are accessible +through the `result object` returned when the process ends. Commands are +expected to write outputs using the console encoding, but `output encoding` +can be configured using the ``output_encoding`` argument if needed. + +Examples: +| ${result} = | `Run Process` | program | stdout=${TEMPDIR}/stdout.txt | stderr=${TEMPDIR}/stderr.txt | +| `Log Many` | stdout: ${result.stdout} | stderr: ${result.stderr} | +| ${result} = | `Run Process` | program | stderr=STDOUT | +| `Log` | all output: ${result.stdout} | + +Note that the created output files are not automatically removed after +the test run. The user is responsible to remove them if needed. + +== Output encoding == + +Executed commands are, by default, expected to write outputs to the +`standard output and error streams` using the encoding used by the +system console. If the command uses some other encoding, that can be +configured using the ``output_encoding`` argument. This is especially +useful on Windows where the console uses a different encoding than rest +of the system, and many commands use the general system encoding instead +of the console encoding. + +The value used with the ``output_encoding`` argument must be a valid +encoding and must match the encoding actually used by the command. As a +convenience, it is possible to use strings ``CONSOLE`` and ``SYSTEM`` +to specify that the console or system encoding is used, respectively. +If produced outputs use different encoding then configured, values got +through the `result object` will be invalid. + +Examples: +| `Start Process` | program | output_encoding=UTF-8 | +| `Run Process` | program | stdout=${path} | output_encoding=SYSTEM | + +The support to set output encoding is new in Robot Framework 3.0. + +== Alias == + +A custom name given to the process that can be used when selecting the +`active process`. + +Examples: +| `Start Process` | program | alias=example | +| `Run Process` | python | -c | print 'hello' | alias=hello | + += Active process = + +The test library keeps record which of the started processes is currently +active. By default it is latest process started with `Start Process`, +but `Switch Process` can be used to select a different one. Using +`Run Process` does not affect the active process. + +The keywords that operate on started processes will use the active process +by default, but it is possible to explicitly select a different process +using the ``handle`` argument. The handle can be the identifier returned by +`Start Process` or an ``alias`` explicitly given to `Start Process` or +`Run Process`. + += Result object = + +`Run Process`, `Wait For Process` and `Terminate Process` keywords return a +result object that contains information about the process execution as its +attributes. The same result object, or some of its attributes, can also +be get using `Get Process Result` keyword. Attributes available in the +object are documented in the table below. + +| = Attribute = | = Explanation = | +| rc | Return code of the process as an integer. | +| stdout | Contents of the standard output stream. | +| stderr | Contents of the standard error stream. | +| stdout_path | Path where stdout was redirected or ``None`` if not redirected. | +| stderr_path | Path where stderr was redirected or ``None`` if not redirected. | + +Example: +| ${result} = | `Run Process` | program | +| `Should Be Equal As Integers` | ${result.rc} | 0 | +| `Should Match` | ${result.stdout} | Some t?xt* | +| `Should Be Empty` | ${result.stderr} | | +| ${stdout} = | `Get File` | ${result.stdout_path} | +| `Should Be Equal` | ${stdout} | ${result.stdout} | +| `File Should Be Empty` | ${result.stderr_path} | | + += Boolean arguments = + +Some keywords accept arguments that are handled as Boolean values true or +false. If such an argument is given as a string, it is considered false if +it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or +``0``, case-insensitively. Other strings are considered true regardless +their value, and other argument types are tested using the same +[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. + +True examples: +| `Terminate Process` | kill=True | # Strings are generally true. | +| `Terminate Process` | kill=yes | # Same as the above. | +| `Terminate Process` | kill=${TRUE} | # Python ``True`` is true. | +| `Terminate Process` | kill=${42} | # Numbers other than 0 are true. | + +False examples: +| `Terminate Process` | kill=False | # String ``false`` is false. | +| `Terminate Process` | kill=no | # Also string ``no`` is false. | +| `Terminate Process` | kill=${EMPTY} | # Empty string is false. | +| `Terminate Process` | kill=${FALSE} | # Python ``False`` is false. | + +Considering string ``NONE`` false is new in Robot Framework 3.0.3 and +considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. + += Example = + +| ***** Settings ***** +| Library Process +| Suite Teardown `Terminate All Processes` kill=True +| +| ***** Test Cases ***** +| Example +| `Start Process` program arg1 arg2 alias=First +| ${handle} = `Start Process` command.sh arg | command2.sh shell=True cwd=/path +| ${result} = `Run Process` ${CURDIR}/script.py +| `Should Not Contain` ${result.stdout} FAIL +| `Terminate Process` ${handle} +| ${result} = `Wait For Process` First +| `Should Be Equal As Integers` ${result.rc} 0 + + +handle=None + +Returns the process ID (pid) of the process as an integer. + +If ``handle`` is not given, uses the current `active process`. + +Notice that the pid is not the same as the handle returned by +`Start Process` that is used internally by this library. + + + + + +handle=None + +Return the underlying ``subprocess.Popen`` object. + +If ``handle`` is not given, uses the current `active process`. + + + + + +handle=None +rc=False +stdout=False +stderr=False +stdout_path=False +stderr_path=False + +Returns the specified `result object` or some of its attributes. + +The given ``handle`` specifies the process whose results should be +returned. If no ``handle`` is given, results of the current `active +process` are returned. In either case, the process must have been +finishes before this keyword can be used. In practice this means +that processes started with `Start Process` must be finished either +with `Wait For Process` or `Terminate Process` before using this +keyword. + +If no other arguments than the optional ``handle`` are given, a whole +`result object` is returned. If one or more of the other arguments +are given any true value, only the specified attributes of the +`result object` are returned. These attributes are always returned +in the same order as arguments are specified in the keyword signature. +See `Boolean arguments` section for more details about true and false +values. + +Examples: +| Run Process | python | -c | print 'Hello, world!' | alias=myproc | +| # Get result object | | | +| ${result} = | Get Process Result | myproc | +| Should Be Equal | ${result.rc} | ${0} | +| Should Be Equal | ${result.stdout} | Hello, world! | +| Should Be Empty | ${result.stderr} | | +| # Get one attribute | | | +| ${stdout} = | Get Process Result | myproc | stdout=true | +| Should Be Equal | ${stdout} | Hello, world! | +| # Multiple attributes | | | +| ${stdout} | ${stderr} = | Get Process Result | myproc | stdout=yes | stderr=yes | +| Should Be Equal | ${stdout} | Hello, world! | +| Should Be Empty | ${stderr} | | + +Although getting results of a previously executed process can be handy +in general, the main use case for this keyword is returning results +over the remote library interface. The remote interface does not +support returning the whole result object, but individual attributes +can be returned without problems. + + + + + +handle=None + +Checks is the process running or not. + +If ``handle`` is not given, uses the current `active process`. + +Returns ``True`` if the process is still running and ``False`` otherwise. + + + + + +*args + +Joins arguments into one command line string. + +In resulting command line string arguments are delimited with a space, +arguments containing spaces are surrounded with quotes, and possible +quotes are escaped with a backslash. + +If this keyword is given only one argument and that is a list like +object, then the values of that list are joined instead. + +Example: +| ${cmd} = | Join Command Line | --option | value with spaces | +| Should Be Equal | ${cmd} | --option "value with spaces" | + +New in Robot Framework 2.9.2. + + + + + +handle=None +error_message=Process is not running. + +Verifies that the process is running. + +If ``handle`` is not given, uses the current `active process`. + +Fails if the process has stopped. + + + + + +handle=None +error_message=Process is running. + +Verifies that the process is not running. + +If ``handle`` is not given, uses the current `active process`. + +Fails if the process is still running. + + + + + +command +*arguments +**configuration + +Runs a process and waits for it to complete. + +``command`` and ``*arguments`` specify the command to execute and +arguments passed to it. See `Specifying command and arguments` for +more details. + +``**configuration`` contains additional configuration related to +starting processes and waiting for them to finish. See `Process +configuration` for more details about configuration related to starting +processes. Configuration related to waiting for processes consists of +``timeout`` and ``on_timeout`` arguments that have same semantics as +with `Wait For Process` keyword. By default there is no timeout, and +if timeout is defined the default action on timeout is ``terminate``. + +Returns a `result object` containing information about the execution. + +Note that possible equal signs in ``*arguments`` must be escaped +with a backslash (e.g. ``name\=value``) to avoid them to be passed in +as ``**configuration``. + +Examples: +| ${result} = | Run Process | python | -c | print 'Hello, world!' | +| Should Be Equal | ${result.stdout} | Hello, world! | +| ${result} = | Run Process | ${command} | stderr=STDOUT | timeout=10s | +| ${result} = | Run Process | ${command} | timeout=1min | on_timeout=continue | +| ${result} = | Run Process | java -Dname\=value Example | shell=True | cwd=${EXAMPLE} | + +This keyword does not change the `active process`. + + + + + +signal +handle=None +group=False + +Sends the given ``signal`` to the specified process. + +If ``handle`` is not given, uses the current `active process`. + +Signal can be specified either as an integer as a signal name. In the +latter case it is possible to give the name both with or without ``SIG`` +prefix, but names are case-sensitive. For example, all the examples +below send signal ``INT (2)``: + +| Send Signal To Process | 2 | | # Send to active process | +| Send Signal To Process | INT | | | +| Send Signal To Process | SIGINT | myproc | # Send to named process | + +This keyword is only supported on Unix-like machines, not on Windows. +What signals are supported depends on the system. For a list of +existing signals on your system, see the Unix man pages related to +signal handling (typically ``man signal`` or ``man 7 signal``). + +By default sends the signal only to the parent process, not to possible +child processes started by it. Notice that when `running processes in +shell`, the shell is the parent process and it depends on the system +does the shell propagate the signal to the actual started process. + +To send the signal to the whole process group, ``group`` argument can +be set to any true value (see `Boolean arguments`). This is not +supported by Jython, however. + + + + + +args +escaping=False + +Splits command line string into a list of arguments. + +String is split from spaces, but argument surrounded in quotes may +contain spaces in them. If ``escaping`` is given a true value, then +backslash is treated as an escape character. It can escape unquoted +spaces, quotes inside quotes, and so on, but it also requires using +double backslashes when using Windows paths. + +Examples: +| @{cmd} = | Split Command Line | --option "value with spaces" | +| Should Be True | $cmd == ['--option', 'value with spaces'] | + +New in Robot Framework 2.9.2. + + + + + +command +*arguments +**configuration + +Starts a new process on background. + +See `Specifying command and arguments` and `Process configuration` +for more information about the arguments, and `Run Process` keyword +for related examples. + +Makes the started process new `active process`. Returns an identifier +that can be used as a handle to activate the started process if needed. + +Processes are started so that they create a new process group. This +allows sending signals to and terminating also possible child +processes. This is not supported on Jython. + + + + + +handle + +Makes the specified process the current `active process`. + +The handle can be an identifier returned by `Start Process` or +the ``alias`` given to it explicitly. + +Example: +| Start Process | prog1 | alias=process1 | +| Start Process | prog2 | alias=process2 | +| # currently active process is process2 | +| Switch Process | process1 | +| # now active process is process1 | + + + + + +kill=False + +Terminates all still running processes started by this library. + +This keyword can be used in suite teardown or elsewhere to make +sure that all processes are stopped, + +By default tries to terminate processes gracefully, but can be +configured to forcefully kill them immediately. See `Terminate Process` +that this keyword uses internally for more details. + + + + + +handle=None +kill=False + +Stops the process gracefully or forcefully. + +If ``handle`` is not given, uses the current `active process`. + +By default first tries to stop the process gracefully. If the process +does not stop in 30 seconds, or ``kill`` argument is given a true value, +(see `Boolean arguments`) kills the process forcefully. Stops also all +the child processes of the originally started process. + +Waits for the process to stop after terminating it. Returns a `result +object` containing information about the execution similarly as `Wait +For Process`. + +On Unix-like machines graceful termination is done using ``TERM (15)`` +signal and killing using ``KILL (9)``. Use `Send Signal To Process` +instead if you just want to send either of these signals without +waiting for the process to stop. + +On Windows graceful termination is done using ``CTRL_BREAK_EVENT`` +event and killing using Win32 API function ``TerminateProcess()``. + +Examples: +| ${result} = | Terminate Process | | +| Should Be Equal As Integers | ${result.rc} | -15 | # On Unixes | +| Terminate Process | myproc | kill=true | + +Limitations: +- Graceful termination is not supported on Windows when using Jython. + Process is killed instead. +- Stopping the whole process group is not supported when using Jython. +- On Windows forceful kill only stops the main process, not possible + child processes. + + + + + +handle=None +timeout=None +on_timeout=continue + +Waits for the process to complete or to reach the given timeout. + +The process to wait for must have been started earlier with +`Start Process`. If ``handle`` is not given, uses the current +`active process`. + +``timeout`` defines the maximum time to wait for the process. It can be +given in +[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#time-format| +various time formats] supported by Robot Framework, for example, ``42``, +``42 s``, or ``1 minute 30 seconds``. + +``on_timeout`` defines what to do if the timeout occurs. Possible values +and corresponding actions are explained in the table below. Notice +that reaching the timeout never fails the test. + +| = Value = | = Action = | +| continue | The process is left running (default). | +| terminate | The process is gracefully terminated. | +| kill | The process is forcefully stopped. | + +See `Terminate Process` keyword for more details how processes are +terminated and killed. + +If the process ends before the timeout or it is terminated or killed, +this keyword returns a `result object` containing information about +the execution. If the process is left running, Python ``None`` is +returned instead. + +Examples: +| # Process ends cleanly | | | +| ${result} = | Wait For Process | example | +| Process Should Be Stopped | example | | +| Should Be Equal As Integers | ${result.rc} | 0 | +| # Process does not end | | | +| ${result} = | Wait For Process | timeout=42 secs | +| Process Should Be Running | | | +| Should Be Equal | ${result} | ${NONE} | +| # Kill non-ending process | | | +| ${result} = | Wait For Process | timeout=1min 30s | on_timeout=kill | +| Process Should Be Stopped | | | +| Should Be Equal As Integers | ${result.rc} | -9 | + + + + diff --git a/libspecs/REST_04a9321.libspec b/libspecs/REST_04a9321.libspec new file mode 100644 index 000000000..c4e9d3a37 --- /dev/null +++ b/libspecs/REST_04a9321.libspec @@ -0,0 +1,999 @@ + + + +test suite +yes +RESTinstance is revolutionary and peaceful HTTP JSON API test library. + +It guides you to write more stable API tests relying on constraints (e.g. "people's email addresses must be valid"), rather than on values having the nature of change (e.g "the first created user's email is expected to stay foo@bar.com"). + +It bases on observations that we are more often concerned whether and which properties changed, when they should (not) had as this signals a bug, and less often what the actual values were/are. This also helps in tackling tests failing only because the test environment data was (not) reset. + +These resolutions in mind, it walks the path with you to contract-driven testing, from automatically generated JSON Schema data models to having formal OpenAPI service specs, as the both are essentially of the same origin. Both are also supported by major forces (Google, Microsoft, IBM et al. founded OpenAPI Initiative), and are language-agnostic which goes as well with Robot Framework. + +Contracts represent a common language within software teams, recognising our differing talents as designers, developers and test experts; or perhaps your new business companion wants to integrate to the system as well, but there is still some noise in signal - yet you don't feel very content providing them the source code, let alone explaining technical details, like which JSON properties are must in the response body, over the phone. + +Rest your mind. OSS got your back. + + += Tutorial = + +There is a [https://github.com/asyrjasalo/RESTinstance/blob/master/examples/README.rst|step-by-step tutorial] in the making on using the library. + +For RESTful APIs, this library is intended to be used so that a test suite +is dedicated per endpoint. The test suite is divided into test cases so that +the differing operations (implemented by the endpoint via HTTP methods) +are tested with separate test cases. + + += The state = + +The library represents its own state as JSON itself, as an array of objects. +Together these objects are commonly called instances. + +A single instance always has these three properties: + +- Request data as a JSON object +- Response data as a JSON object +- JSON Schema for the above two properties + +For each request-response, as soon as the response has been gotten +(and the request did not timeout), a new instance is created with these +properties. + +Request and response schemas are inferred if they are not already +expected by using expectation keywords. All the validations the library +implements are based on JSON Schema [http://json-schema.org/draft-07/json-schema-validation.html|draft-07] by default +but also [http://json-schema.org/draft-06/json-schema-validation.html|draft-06] and +[http://json-schema.org/draft-04/json-schema-validation.html|draft-04] can be configured. + += The scope = + +All the assertion keywords, `Output` and `Output Schema` are effective +in the scope of the last instance. + +The scope of the library itself is test suite, meaning the instances +are persisted in memory until the execution of the test suite is finished, +regardless whether successfully or not. + +The last request and response is easiest seen with `Output`. +The output is written to terminal by default, as this is usually faster +for debugging purposes than finding the right keyword in ``log.html``. + +All instances can be output to a file with `RESTinstances` which can +be useful for additional logging. + + +url=None +ssl_verify=True +accept=application/json, */* +content_type=application/json +user_agent=RESTinstance/1.0.0rc4 +proxies={} +schema={} +spec={} +instances=[] + +Initialize self. See help(type(self)) for accurate signature. + + + + + +field +*enum +**validations + +*Asserts the field as JSON array.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], +the root being the response body. + +*Enum* + +The allowed values for the property as zero or more arguments. +If none given, the value of the property is not asserted. + +*Validations* + +The JSON Schema validation keywords +[https://json-schema.org/understanding-json-schema/reference/array.html|for array] +can be used. Validations are optional but update the schema of +the property (more accurate) if given. +`Output Schema` can be used for the current schema of the field. + +The keyword will fail if any of the given validations fail. +Given validations can be skipped altogether by adding ``skip=true``. +When skipped, the schema is updated but the validations are not ran. +Skip is intented mainly for debugging the updated schema before aborting. + +*Examples* +| `GET` | /users?_limit=10 | | | | # https://jsonplaceholder.typicode.com/users | +| `Array` | response body | | | +| `Array` | $ | | | | # same as above | +| `Array` | $ | minItems=1 | maxItems=10 | uniqueItems=true | + +assertions + + + + +field +value=None +**validations + +*Asserts the field as JSON boolean.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], the root being the response body. + +*Value* + +If given, the property value is validated in addition to the type. + +*Validations* + +The JSON Schema validation keywords +[https://json-schema.org/understanding-json-schema/reference/generic.html|common for all types] +can be used. Validations are optional but update the schema of +the property (more accurate) if given. +`Output Schema` can be used for the current schema of the field. + +The keyword will fail if any of the given validations fail. +Given validations can be skipped altogether by adding ``skip=true``. +When skipped, the schema is updated but the validations are not ran. +Skip is intented mainly for debugging the updated schema before aborting. + +*Examples* + +| `PUT` | /users/1 | { "verified_email": true } | | | # https://jsonplaceholder.typicode.com/users/1 | +| `Boolean` | response body verified_email | | | | # value is optional | +| `Boolean` | response body verified_email | true | +| `Boolean` | response body verified_email | ${True} | | | # same as above | +| `Boolean` | $.verified_email | true | | | # JSONPath alternative | +| `Boolean` | $.verified_email | true | enum=[1, "1"] | skip=true | # would pass | + +assertions + + + + + +*Resets the expectations for both request and response.* + +Using this keyword resets any expectations set with keywords +`Expect Response`, `Expect Response Body` and `Expect Request`. + +expectations + + + + +endpoint +timeout=None +allow_redirects=None +validate=True +headers=None + +*Sends a DELETE request to the endpoint.* + +The endpoint is joined with the URL given on library init (if any). +If endpoint starts with ``http://`` or ``https://``, it is assumed +an URL outside the tested API (which may affect logging). + +*Options* + +``timeout``: A number of seconds to wait for the response before failing the keyword. + +``allow_redirects``: If false, do not follow any redirects. + +``validate``: If false, skips any request and response validations set +by expectation keywords and a spec given on library init. + +``headers``: Headers as a JSON object to add or override for the request. + +*Examples* + +| `DELETE` | /users/6 | +| `DELETE` | http://localhost:8273/state | validate=false | + +http + + + + +schema +merge=False + +*Sets the schema to validate the request properties* + +Expectations are effective for following requests in the test suite, +or until they are reset or updated by using expectation keywords again. +On the test suite level (suite setup), they are best used for expecting +the endpoint wide properties that are common regardless of the tested +HTTP method, and on the test case level (test setup) to merge in +the HTTP method specific properties. + +`Expect Request` is intented to be used with tests that have some of the +request properties, e.g. body or query parameters, randomized ("fuzzing") +for validating that the sent values are within the expected scope. + +If the keyword is used, following HTTP keywords will fail when +their request properties are not valid against the expected schema. + +If the keyword is not used, a new schema is generated for each following +request for its ``body`` and ``query`` properties. Use `Output Schema` to output it and use it as an input to this keyword. + +*Options* + +``merge``: Merges the new schema with the current instead of replacing it + +*Examples* + +| `Expect Request` | ${CURDIR}/valid_payload.json | | # See `Output Schema` | +| `Expect Request` | { "body": { "required": ["id"] } } | merge=true | + +expectations + + + + +schema +merge=False + +*Sets the schema to validate the response properties.* + +Expectations are effective for following requests in the test suite, +or until they are reset or updated by using expectation keywords again. +On the test suite level (suite setup), they are best used for expecting +the endpoint wide properties that are common regardless of the tested +HTTP method, and on the test case level (test setup) to merge in +the HTTP method specific properties. + +`Expect Response` is intented to be used on the suite level to validate +the endpoint properties that hold regardless of the HTTP method, +such as body property types, responded headers, authentication, etc. + +If the keyword is used, following HTTP keywords will fail when +their response properties are not valid against the expected schema. + +If the keyword is not used, a new schema is inferred for each following +response for its ``body``. Use `Output Schema` to output it and use it +as an input to this keyword. + +*Options* + +``merge``: Merges the new schema with the current instead of replacing it + +*Examples* + +| `Expect Response` | ${CURDIR}/endpoint_data_model.json | | # See `Output Schema` | +| `Expect Response` | { "headers": { "required": ["Via"] } } | merge=true | +| `Expect Response` | { "seconds": { "maximum": "1.0" } } | merge=true | + +expectations + + + + +schema + +*Updates the schema to validate the response body properties.* + +Expectations are effective for following requests in the test suite, +or until they are reset or updated by using expectation keywords again. +On the test suite level (suite setup), they are best used for expecting +the endpoint wide properties that are common regardless of the tested +HTTP method, and on the test case level (test setup) to merge in +the HTTP method specific properties. + +`Expect Response Body` is intented to be used on the test case level, +to validate that the response body has the expected properties for +the particular HTTP method. Note that if something about response body +has been already expected with `Expected Response`, using this keyword +updates the expectations in terms of given response body properties. + +If the keyword is used, following HTTP keywords will fail if +their response body is not valid against the expected schema. + +If the keyword is not used, and no schema is already expected with +`Expect Response` for response ``body``, a new schema is inferred for it. +Use `Output Schema` to output it and use it as an input to this keyword. + +*Tips* + +Regardless whether the HTTP method returns one (an object) or many +(an array of objects), the validation of the object property types and features can usually be done to some extent on the test suite level +with `Expect Response`, then extended on the test case level using this +keyword. This helps in ensuring that the data model is unified between +the different HTTP methods. + +*Examples* + +| `Expect Response Body` | ${CURDIR}/user_properties.json | # See `Output Schema` | +| `Expect Response Body` | { "required": ["id", "token"] } | # Only these are required from this method | +| `Expect Response Body` | { "additionalProperties": false } | # Nothing extra should be responded by this method | + +expectations + + + + +endpoint +query=None +timeout=None +allow_redirects=None +validate=True +headers=None + +*Sends a GET request to the endpoint.* + +The endpoint is joined with the URL given on library init (if any). +If endpoint starts with ``http://`` or ``https://``, it is assumed +an URL outside the tested API (which may affect logging). + +*Options* + +``query``: Request query parameters as a JSON object or a dictionary. +Alternatively, query parameters can be given as part of endpoint as well. + +``timeout``: A number of seconds to wait for the response before failing the keyword. + +``allow_redirects``: If false, do not follow any redirects. + +``validate``: If false, skips any request and response validations set +by expectation keywords and a spec given on library init. + +``headers``: Headers as a JSON object to add or override for the request. + +*Examples* + +| `GET` | /users/1 | +| `GET` | /users | timeout=2.5 | +| `GET` | /users?_limit=2 | +| `GET` | /users | _limit=2 | +| `GET` | /users | { "_limit": "2" } | +| `GET` | https://jsonplaceholder.typicode.com/users | headers={ "Authentication": "" } | + +http + + + + +endpoint +timeout=None +allow_redirects=None +validate=True +headers=None + +*Sends a HEAD request to the endpoint.* + +The endpoint is joined with the URL given on library init (if any). +If endpoint starts with ``http://`` or ``https://``, it is assumed +an URL outside the tested API (which may affect logging). + +*Options* + +``timeout``: A number of seconds to wait for the response before failing the keyword. + +``allow_redirects``: If true, follow all redirects. +In contrary to other methods, no HEAD redirects are followed by default. + +``validate``: If false, skips any request and response validations set +by expectation keywords and a spec given on library init. + +``headers``: The headers to add or override for this request. + +*Examples* + +| `HEAD` | /users/1 | +| `HEAD` | /users/1 | timeout=0.5 | + +http + + + + +what + +*Converts the input to JSON and returns it.* + +Any of the following is accepted: + +- The path to JSON file +- Any scalar that can be interpreted as JSON +- A dictionary or a list + +*Examples* + +| ${payload} | `Input` | ${CURDIR}/payload.json | + +| ${object} | `Input` | { "name": "Julie Langford", "username": "jlangfor" } | +| ${object} | `Input` | ${dict} | + +| ${array} | `Input` | ["name", "username"] | +| ${array} | `Input` | ${list} | + +| ${boolean} | `Input` | true | +| ${boolean} | `Input` | ${True} | + +| ${number} | `Input` | 2.0 | +| ${number} | `Input` | ${2.0} | + +| ${string} | `Input` | Quotes are optional for strings | + +I/O + + + + +field +*enum +**validations + +*Asserts the field as JSON integer.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], +the root being the response body. + +*Enum* + +The allowed values for the property as zero or more arguments. +If none given, the value of the property is not asserted. + +*Validations* + +The JSON Schema validation keywords +[https://json-schema.org/understanding-json-schema/reference/numeric.html#integer|for numeric types] +can be used. Validations are optional but update the schema of +the property (more accurate) if given. +`Output Schema` can be used for the current schema of the field. + +The keyword will fail if any of the given validations fail. +Given validations can be skipped altogether by adding ``skip=true``. +When skipped, the schema is updated but the validations are not ran. +Skip is intented mainly for debugging the updated schema before aborting. + +*Examples* + +| `GET` | /users/1 | | # https://jsonplaceholder.typicode.com/users/1 | +| `Integer` | response body id | | # value is optional | +| `Integer` | response body id | 1 | +| `Integer` | response body id | ${1} | # same as above | +| `Integer` | $.id | 1 | # JSONPath alternative | + +| `GET` | /users?_limit=10 | | | | # https://jsonplaceholder.typicode.com/users | +| `Integer` | response body 0 id | 1 | | | +| `Integer` | $[0].id | 1 | | | # same as above | +| `Integer` | $[*].id | | minimum=1 | maximum=10 | + +assertions + + + + +field + +*Asserts the field does not exist.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], +the root being the response body. + +*Examples* + +| `GET` | /users/1 | # https://jsonplaceholder.typicode.com/users/1 | +| `Missing` | response body password | +| `Missing` | $.password | +| `Missing` | $..geo.elevation | # response body address geo elevation | + +| `GET` | /users | # https://jsonplaceholder.typicode.com/users | +| `Missing` | response body 0 password | +| `Missing` | $[*].password | +| `Missing` | $[*]..geo.elevation | + +assertions + + + + +field +**validations + +*Asserts the field as JSON null.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], +the root being the response body. + +*Validations* + +The JSON Schema validation keywords +[https://json-schema.org/understanding-json-schema/reference/generic.html|common for all types] +can be used. Validations are optional but update the schema of +the property (more accurate) if given. +`Output Schema` can be used for the current schema of the field. + +The keyword will fail if any of the given validations fail. +Given validations can be skipped altogether by adding ``skip=true``. +When skipped, the schema is updated but the validations are not ran. +Skip is intented mainly for debugging the updated schema before aborting. + +*Examples* + +| `PUT` | /users/1 | { "deactivated_at": null } | # https://jsonplaceholder.typicode.com/users/1 | +| `Null` | response body deactivated_at | | +| `Null` | $.deactivated_at | | # JSONPath alternative | + +assertions + + + + +field +*enum +**validations + +*Asserts the field as JSON number.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], +the root being the response body. + +*Enum* + +The allowed values for the property as zero or more arguments. +If none given, the value of the property is not asserted. + +*Validations* + +The JSON Schema validation keywords +[https://json-schema.org/understanding-json-schema/reference/numeric.html#number|for numeric types] can be used. Validations are optional but update the schema of +the property (more accurate) if given. +`Output Schema` can be used for the current schema of the field. + +The keyword will fail if any of the given validations fail. +Given validations can be skipped altogether by adding ``skip=true``. +When skipped, the schema is updated but the validations are not ran. +Skip is intented mainly for debugging the updated schema before aborting. + +*Examples* + +| `PUT` | /users/1 | { "allocation": 95.0 } | # https://jsonplaceholder.typicode.com/users/1 | +| `Number` | response body allocation | | # value is optional | +| `Number` | response body allocation | 95.0 | +| `Number` | response body allocation | ${95.0} | # same as above | +| `Number` | $.allocation | 95.0 | # JSONPath alternative | + +| `GET` | /users?_limit=10 | | | | # https://jsonplaceholder.typicode.com/users | +| `Number` | $[0].id | 1 | | | # integers are also numbers | +| `Number` | $[*].id | | minimum=1 | maximum=10 | + +assertions + + + + +field +*enum +**validations + +*Asserts the field as JSON object.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], the root being the response body. + +*Enum* + +The allowed values for the property as zero or more arguments. +If none given, the value of the property is not asserted. + +*Validations* + +The JSON Schema validation keywords +[https://json-schema.org/understanding-json-schema/reference/object.html|for object] +can be used. Validations are optional but update the schema of +the property (more accurate) if given. +`Output Schema` can be used for the current schema of the field. + +The keyword will fail if any of the given validations fail. +Given validations can be skipped altogether by adding ``skip=true``. +When skipped, the schema is updated but the validations are not ran. +Skip is intented mainly for debugging the updated schema before aborting. + +*Examples* + +| `GET` | /users/1 | | # https://jsonplaceholder.typicode.com/users/1 | +| `Object` | response body | | +| `Object` | response body | required=["id", "name"] | # can have other properties | + +| `GET` | /users/1 | | # https://jsonplaceholder.typicode.com/users/1 | +| `Object` | $.address.geo | required=["lat", "lng"] | +| `Object` | $..geo | additionalProperties=false | # cannot have other properties | + +assertions + + + + +endpoint +timeout=None +allow_redirects=None +validate=True +headers=None + +*Sends an OPTIONS request to the endpoint.* + +The endpoint is joined with the URL given on library init (if any). +If endpoint starts with ``http://`` or ``https://``, it is assumed +an URL outside the tested API (which may affect logging). + +*Options* + +``timeout``: A number of seconds to wait for the response before failing the keyword. + +``allow_redirects``: If false, do not follow any redirects. + +``validate``: If false, skips any request and response validations set +by expectation keywords and a spec given on library init. + +``headers``: Headers as a JSON object to add or override for the request. + +*Examples* + +| `OPTIONS` | /users/1 | +| `OPTIONS` | /users/1 | allow_redirects=false | + +http + + + + +what= +file_path=None +append=False +sort_keys=False + +*Outputs JSON to terminal or a file.* + +By default, the last request and response are output to terminal. + +The output can be limited further by: + +- The property of the last instance, e.g. ``request`` or ``response`` +- Any nested property that exists, similarly as for assertion keywords + +Also variables and values that can be converted to JSON are accepted, +in which case those are output as JSON instead. + +*Options* + +``file_path``: The JSON is written to a file instead of terminal. +The file is created if it does not exist. + +``append``: If true, the JSON is appended to the given file +instead of truncating it first. + +``sort_keys``: If true, the JSON is sorted alphabetically by +property names before it is output. + +*Examples* + +| `Output` | response | # only the response is output | +| `Output` | response body | # only the response body is output | +| `Output` | $.email | # only the response body property is output | +| `Output` | $..geo | # only the nested response body property is output | + +| `Output` | request | # only the request is output | +| `Output` | request headers | # only the request headers are output | +| `Output` | request headers Authentication | # only this header is output | + +| `Output` | response body | ${CURDIR}/response_body.json | | # write the response body to a file | +| `Output` | response seconds | ${CURDIR}/response_delays.log | append=true | # keep track of response delays in a file | + +I/O + + + + +what= +file_path=None +append=False +sort_keys=False + +*Outputs JSON Schema to terminal or a file.* + +By default, the schema is output for the last request and response. + +The output can be limited further by: + +- The property of the last instance, e.g. ``request`` or ``response`` +- Any nested property that exists, similarly as for assertion keywords + +Also variables and values that can be converted to JSON are accepted, +in which case the schema is generated for those instead. + +*Options* + +``file_path``: The JSON Schema is written to a file instead of terminal. +The file is created if it does not exist. + +``append``: If true, the JSON Schema is appended to the given file +instead of truncating it first. + +``sort_keys``: If true, the JSON Schema is sorted alphabetically by +property names before it is output. + +*Examples* + +| `Output Schema` | response | ${CURDIR}/response_schema.json | # Write a file to use with `Expect Response` | +| `Output Schema` | response body | ${CURDIR}/response_body_schema.json | # Write a file to use with `Expect Response Body` | + +| `Output Schema` | $.email | # only the schema for one response body property | +| `Output Schema` | $..geo | # only the schema for the nested response body property | + +I/O + + + + +endpoint +body=None +timeout=None +allow_redirects=None +validate=True +headers=None + +*Sends a PATCH request to the endpoint.* + +The endpoint is joined with the URL given on library init (if any). +If endpoint starts with ``http://`` or ``https://``, it is assumed +an URL outside the tested API (which may affect logging). + +*Options* + +``body``: Request body parameters as a JSON object, file or a dictionary. + +``timeout``: A number of seconds to wait for the response before failing the keyword. + +``allow_redirects``: If false, do not follow any redirects. + +``validate``: If false, skips any request and response validations set +by expectation keywords and a spec given on library init. + +``headers``: Headers as a JSON object to add or override for the request. + +*Examples* + +| `PATCH` | /users/4 | { "name": "Clementine Bauch" } | +| `PATCH` | /users/4 | ${dict} | + +http + + + + +endpoint +body=None +timeout=None +allow_redirects=None +validate=True +headers=None + +*Sends a POST request to the endpoint.* + +The endpoint is joined with the URL given on library init (if any). +If endpoint starts with ``http://`` or ``https://``, it is assumed +an URL outside the tested API (which may affect logging). + +*Options* + +``body``: Request body parameters as a JSON object, file or a dictionary. + +``timeout``: A number of seconds to wait for the response before failing the keyword. + +``allow_redirects``: If false, do not follow any redirects. + +``validate``: If false, skips any request and response validations set +by expectation keywords and a spec given on library init. + +``headers``: Headers as a JSON object to add or override for the request. + +*Examples* + +| `POST` | /users | { "id": 11, "name": "Gil Alexander" } | +| `POST` | /users | ${CURDIR}/new_user.json | + +http + + + + +endpoint +body=None +timeout=None +allow_redirects=None +validate=True +headers=None + +*Sends a PUT request to the endpoint.* + +The endpoint is joined with the URL given on library init (if any). +If endpoint starts with ``http://`` or ``https://``, it is assumed +an URL outside the tested API (which may affect logging). + +*Options* + +``body``: Request body parameters as a JSON object, file or a dictionary. + +``timeout``: A number of seconds to wait for the response before failing the keyword. + +``allow_redirects``: If false, do not follow any redirects. + +``validate``: If false, skips any request and response validations set +by expectation keywords and a spec given on library init. + +``headers``: Headers as a JSON object to add or override for the request. + +*Examples* + +| `PUT` | /users/2 | { "name": "Julie Langford", "username": "jlangfor" } | +| `PUT` | /users/2 | ${dict} | + +http + + + + +file_path=None +sort_keys=False + +*Writes the instances as JSON to a file.* + +The instances are written to file as a JSON array of JSON objects, +each object representing a single instance, and having three properties: + +- the request +- the response +- the schema for both, which have been updated according to the tests + +The file is created if it does not exist, otherwise it is truncated. + +*Options* + +``sort_keys``: If true, the instances are sorted alphabetically by +property names. + +*Examples* + +| `Rest Instances` | ${CURDIR}/log.json | + +I/O + + + + +cert + +*Sets the client cert for the requests.* + +The cert is either a path to a .pem file, or a JSON array, or a list +having the cert path and the key path. + +Values ``null`` and ``${None}`` can be used for clearing the cert. + +*Examples* + +| `Set Client Cert` | ${CURDIR}/client.pem | +| `Set Client Cert` | ["${CURDIR}/client.cert", "${CURDIR}/client.key"] | +| `Set Client Cert` | ${paths_list} | + +settings + + + + +headers + +*Sets new request headers or updates the existing.* + +``headers``: The headers to add or update as a JSON object or a +dictionary. + +*Examples* + +| `Set Headers` | { "authorization": "Basic QWxhZGRpbjpPcGVuU2VzYW1"} | +| `Set Headers` | { "Accept-Encoding": "identity"} | +| `Set Headers` | ${auth_dict} | + +settings + + + + +field +*enum +**validations + +*Asserts the field as JSON string.* + +The field consists of parts separated by spaces, the parts being +object property names or array indices starting from 0, and the root +being the instance created by the last request (see `Output` for it). + +For asserting deeply nested properties or multiple objects at once, +[http://goessner.net/articles/JsonPath|JSONPath] can be used with +[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], the root being the response body. + +*Enum* + +The allowed values for the property as zero or more arguments. +If none given, the value of the property is not asserted. + +*Validations* + +The JSON Schema validation keywords +[https://json-schema.org/understanding-json-schema/reference/string.html|for string] +can be used. Validations are optional but update the schema of +the property (more accurate) if given. +`Output Schema` can be used for the current schema of the field. + +The keyword will fail if any of the given validations fail. +Given validations can be skipped altogether by adding ``skip=true``. +When skipped, the schema is updated but the validations are not ran. +Skip is intented mainly for debugging the updated schema before aborting. + +*Examples* + +| `GET` | /users/1 | | | # https://jsonplaceholder.typicode.com/users/1 | +| `String` | response body email | | | # value is optional | +| `String` | response body email | Sincere@april.biz | +| `String` | $.email | Sincere@april.biz | | # JSONPath alternative | +| `String` | $.email | | format=email | + +| `GET` | /users?_limit=10 | | | # https://jsonplaceholder.typicode.com/users | +| `String` | response body 0 email | Sincere@april.biz | +| `String` | $[0].email | Sincere@april.biz | | # same as above | +| `String` | $[*].email | | format=email | + +assertions + + + diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec new file mode 100644 index 000000000..b093decf0 --- /dev/null +++ b/libspecs/Reserved.libspec @@ -0,0 +1,87 @@ + + + +global +yes +Documentation for library ``Reserved``. + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + + +*varargs + + + + + + diff --git a/libspecs/Screenshot.libspec b/libspecs/Screenshot.libspec new file mode 100644 index 000000000..5703b5b9e --- /dev/null +++ b/libspecs/Screenshot.libspec @@ -0,0 +1,132 @@ + + +3.1 +test suite +yes +Test library for taking screenshots on the machine where tests are run. + +Notice that successfully taking screenshots requires tests to be run with +a physical or virtual display. + += Using with Python = + +How screenshots are taken when using Python depends on the operating +system. On OSX screenshots are taken using the built-in ``screencapture`` +utility. On other operating systems you need to have one of the following +tools or Python modules installed. You can specify the tool/module to use +when `importing` the library. If no tool or module is specified, the first +one found will be used. + +- wxPython :: http://wxpython.org :: Required also by RIDE so many Robot + Framework users already have this module installed. +- PyGTK :: http://pygtk.org :: This module is available by default on most + Linux distributions. +- Pillow :: http://python-pillow.github.io :: + Only works on Windows. Also the original PIL package is supported. +- Scrot :: http://en.wikipedia.org/wiki/Scrot :: Not used on Windows. + Install with ``apt-get install scrot`` or similar. + +Using ``screencapture`` on OSX and specifying explicit screenshot module +are new in Robot Framework 2.9.2. The support for using ``scrot`` is new +in Robot Framework 3.0. + += Using with Jython and IronPython = + +With Jython and IronPython this library uses APIs provided by JVM and .NET +platforms, respectively. These APIs are always available and thus no +external modules are needed. + += Where screenshots are saved = + +By default screenshots are saved into the same directory where the Robot +Framework log file is written. If no log is created, screenshots are saved +into the directory where the XML output file is written. + +It is possible to specify a custom location for screenshots using +``screenshot_directory`` argument when `importing` the library and +using `Set Screenshot Directory` keyword during execution. It is also +possible to save screenshots using an absolute path. + + +screenshot_directory=None +screenshot_module=None + +Configure where screenshots are saved. + +If ``screenshot_directory`` is not given, screenshots are saved into +same directory as the log file. The directory can also be set using +`Set Screenshot Directory` keyword. + +``screenshot_module`` specifies the module or tool to use when using +this library on Python outside OSX. Possible values are ``wxPython``, +``PyGTK``, ``PIL`` and ``scrot``, case-insensitively. If no value is +given, the first module/tool found is used in that order. See `Using +with Python` for more information. + +Examples (use only one of these): +| =Setting= | =Value= | =Value= | +| Library | Screenshot | | +| Library | Screenshot | ${TEMPDIR} | +| Library | Screenshot | screenshot_module=PyGTK | + +Specifying explicit screenshot module is new in Robot Framework 2.9.2. + + + + + +path + +Sets the directory where screenshots are saved. + +It is possible to use ``/`` as a path separator in all operating +systems. Path to the old directory is returned. + +The directory can also be set in `importing`. + + + + + +name=screenshot +width=800px + +Takes a screenshot in JPEG format and embeds it into the log file. + +Name of the file where the screenshot is stored is derived from the +given ``name``. If the ``name`` ends with extension ``.jpg`` or +``.jpeg``, the screenshot will be stored with that exact name. +Otherwise a unique name is created by adding an underscore, a running +index and an extension to the ``name``. + +The name will be interpreted to be relative to the directory where +the log file is written. It is also possible to use absolute paths. +Using ``/`` as a path separator works in all operating systems. + +``width`` specifies the size of the screenshot in the log file. + +Examples: (LOGDIR is determined automatically by the library) +| Take Screenshot | | | # LOGDIR/screenshot_1.jpg (index automatically incremented) | +| Take Screenshot | mypic | | # LOGDIR/mypic_1.jpg (index automatically incremented) | +| Take Screenshot | ${TEMPDIR}/mypic | | # /tmp/mypic_1.jpg (index automatically incremented) | +| Take Screenshot | pic.jpg | | # LOGDIR/pic.jpg (always uses this file) | +| Take Screenshot | images/login.jpg | 80% | # Specify both name and width. | +| Take Screenshot | width=550px | | # Specify only width. | + +The path where the screenshot is saved is returned. + + + + + +name=screenshot + +Takes a screenshot and links it from the log file. + +This keyword is otherwise identical to `Take Screenshot` but the saved +screenshot is not embedded into the log file. The screenshot is linked +so it is nevertheless easily available. + + + + diff --git a/libspecs/String.libspec b/libspecs/String.libspec new file mode 100644 index 000000000..f82c78ea9 --- /dev/null +++ b/libspecs/String.libspec @@ -0,0 +1,722 @@ + + +3.1 +global +yes +A test library for string manipulation and verification. + +``String`` is Robot Framework's standard library for manipulating +strings (e.g. `Replace String Using Regexp`, `Split To Lines`) and +verifying their contents (e.g. `Should Be String`). + +Following keywords from ``BuiltIn`` library can also be used with strings: + +- `Catenate` +- `Get Length` +- `Length Should Be` +- `Should (Not) Be Empty` +- `Should (Not) Be Equal (As Strings/Integers/Numbers)` +- `Should (Not) Match (Regexp)` +- `Should (Not) Contain` +- `Should (Not) Start With` +- `Should (Not) End With` +- `Convert To String` +- `Convert To Bytes` + + +string + +Converts string to lowercase. + +Examples: +| ${str1} = | Convert To Lowercase | ABC | +| ${str2} = | Convert To Lowercase | 1A2c3D | +| Should Be Equal | ${str1} | abc | +| Should Be Equal | ${str2} | 1a2c3d | + + + + + +string + +Converts string to uppercase. + +Examples: +| ${str1} = | Convert To Uppercase | abc | +| ${str2} = | Convert To Uppercase | 1a2C3d | +| Should Be Equal | ${str1} | ABC | +| Should Be Equal | ${str2} | 1A2C3D | + + + + + +bytes +encoding +errors=strict + +Decodes the given ``bytes`` to a Unicode string using the given ``encoding``. + +``errors`` argument controls what to do if decoding some bytes fails. +All values accepted by ``decode`` method in Python are valid, but in +practice the following values are most useful: + +- ``strict``: fail if characters cannot be decoded (default) +- ``ignore``: ignore characters that cannot be decoded +- ``replace``: replace characters that cannot be decoded with + a replacement character + +Examples: +| ${string} = | Decode Bytes To String | ${bytes} | UTF-8 | +| ${string} = | Decode Bytes To String | ${bytes} | ASCII | errors=ignore | + +Use `Encode String To Bytes` if you need to convert Unicode strings to +byte strings, and `Convert To String` in ``BuiltIn`` if you need to +convert arbitrary objects to Unicode strings. + + + + + +string +encoding +errors=strict + +Encodes the given Unicode ``string`` to bytes using the given ``encoding``. + +``errors`` argument controls what to do if encoding some characters fails. +All values accepted by ``encode`` method in Python are valid, but in +practice the following values are most useful: + +- ``strict``: fail if characters cannot be encoded (default) +- ``ignore``: ignore characters that cannot be encoded +- ``replace``: replace characters that cannot be encoded with + a replacement character + +Examples: +| ${bytes} = | Encode String To Bytes | ${string} | UTF-8 | +| ${bytes} = | Encode String To Bytes | ${string} | ASCII | errors=ignore | + +Use `Convert To Bytes` in ``BuiltIn`` if you want to create bytes based +on character or integer sequences. Use `Decode Bytes To String` if you +need to convert byte strings to Unicode strings and `Convert To String` +in ``BuiltIn`` if you need to convert arbitrary objects to Unicode. + + + + + +string +marker + +Returns contents of the ``string`` before the first occurrence of ``marker``. + +If the ``marker`` is not found, whole string is returned. + +See also `Fetch From Right`, `Split String` and `Split String +From Right`. + + + + + +string +marker + +Returns contents of the ``string`` after the last occurrence of ``marker``. + +If the ``marker`` is not found, whole string is returned. + +See also `Fetch From Left`, `Split String` and `Split String +From Right`. + + + + + +template +*positional +**named + +Formats a ``template`` using the given ``positional`` and ``named`` arguments. + +The template can be either be a string or an absolute path to +an existing file. In the latter case the file is read and its contents +are used as the template. If the template file contains non-ASCII +characters, it must be encoded using UTF-8. + +The template is formatted using Python's +[https://docs.python.org/library/string.html#format-string-syntax|format +string syntax]. Placeholders are marked using ``{}`` with possible +field name and format specification inside. Literal curly braces +can be inserted by doubling them like `{{` and `}}`. + +Examples: +| ${to} = | Format String | To: {} <{}> | ${user} | ${email} | +| ${to} = | Format String | To: {name} <{email}> | name=${name} | email=${email} | +| ${to} = | Format String | To: {user.name} <{user.email}> | user=${user} | +| ${xx} = | Format String | {:*^30} | centered | +| ${yy} = | Format String | {0:{width}{base}} | ${42} | base=X | width=10 | +| ${zz} = | Format String | ${CURDIR}/template.txt | positional | named=value | + +New in Robot Framework 3.1. + + + + + +length=8 +chars=[LETTERS][NUMBERS] + +Generates a string with a desired ``length`` from the given ``chars``. + +The population sequence ``chars`` contains the characters to use +when generating the random string. It can contain any +characters, and it is possible to use special markers +explained in the table below: + +| = Marker = | = Explanation = | +| ``[LOWER]`` | Lowercase ASCII characters from ``a`` to ``z``. | +| ``[UPPER]`` | Uppercase ASCII characters from ``A`` to ``Z``. | +| ``[LETTERS]`` | Lowercase and uppercase ASCII characters. | +| ``[NUMBERS]`` | Numbers from 0 to 9. | + +Examples: +| ${ret} = | Generate Random String | +| ${low} = | Generate Random String | 12 | [LOWER] | +| ${bin} = | Generate Random String | 8 | 01 | +| ${hex} = | Generate Random String | 4 | [NUMBERS]abcdef | + + + + + +string +line_number + +Returns the specified line from the given ``string``. + +Line numbering starts from 0 and it is possible to use +negative indices to refer to lines from the end. The line is +returned without the newline character. + +Examples: +| ${first} = | Get Line | ${string} | 0 | +| ${2nd last} = | Get Line | ${string} | -2 | + +Use `Split To Lines` if all lines are needed. + + + + + +string + +Returns and logs the number of lines in the given string. + + + + + +string +pattern +case_insensitive=False + +Returns lines of the given ``string`` that contain the ``pattern``. + +The ``pattern`` is always considered to be a normal string, not a glob +or regexp pattern. A line matches if the ``pattern`` is found anywhere +on it. + +The match is case-sensitive by default, but giving ``case_insensitive`` +a true value makes it case-insensitive. The value is considered true +if it is a non-empty string that is not equal to ``false``, ``none`` or +``no``. If the value is not a string, its truth value is got directly +in Python. Considering ``none`` false is new in RF 3.0.3. + +Lines are returned as one string catenated back together with +newlines. Possible trailing newline is never returned. The +number of matching lines is automatically logged. + +Examples: +| ${lines} = | Get Lines Containing String | ${result} | An example | +| ${ret} = | Get Lines Containing String | ${ret} | FAIL | case-insensitive | + +See `Get Lines Matching Pattern` and `Get Lines Matching Regexp` +if you need more complex pattern matching. + + + + + +string +pattern +case_insensitive=False + +Returns lines of the given ``string`` that match the ``pattern``. + +The ``pattern`` is a _glob pattern_ where: +| ``*`` | matches everything | +| ``?`` | matches any single character | +| ``[chars]`` | matches any character inside square brackets (e.g. ``[abc]`` matches either ``a``, ``b`` or ``c``) | +| ``[!chars]`` | matches any character not inside square brackets | + +A line matches only if it matches the ``pattern`` fully. + +The match is case-sensitive by default, but giving ``case_insensitive`` +a true value makes it case-insensitive. The value is considered true +if it is a non-empty string that is not equal to ``false``, ``none`` or +``no``. If the value is not a string, its truth value is got directly +in Python. Considering ``none`` false is new in RF 3.0.3. + +Lines are returned as one string catenated back together with +newlines. Possible trailing newline is never returned. The +number of matching lines is automatically logged. + +Examples: +| ${lines} = | Get Lines Matching Pattern | ${result} | Wild???? example | +| ${ret} = | Get Lines Matching Pattern | ${ret} | FAIL: * | case_insensitive=true | + +See `Get Lines Matching Regexp` if you need more complex +patterns and `Get Lines Containing String` if searching +literal strings is enough. + + + + + +string +pattern +partial_match=False + +Returns lines of the given ``string`` that match the regexp ``pattern``. + +See `BuiltIn.Should Match Regexp` for more information about +Python regular expression syntax in general and how to use it +in Robot Framework test data in particular. + +By default lines match only if they match the pattern fully, but +partial matching can be enabled by giving the ``partial_match`` +argument a true value. The value is considered true +if it is a non-empty string that is not equal to ``false``, ``none`` or +``no``. If the value is not a string, its truth value is got directly +in Python. Considering ``none`` false is new in RF 3.0.3. + +If the pattern is empty, it matches only empty lines by default. +When partial matching is enabled, empty pattern matches all lines. + +Notice that to make the match case-insensitive, you need to prefix +the pattern with case-insensitive flag ``(?i)``. + +Lines are returned as one string concatenated back together with +newlines. Possible trailing newline is never returned. The +number of matching lines is automatically logged. + +Examples: +| ${lines} = | Get Lines Matching Regexp | ${result} | Reg\\w{3} example | +| ${lines} = | Get Lines Matching Regexp | ${result} | Reg\\w{3} example | partial_match=true | +| ${ret} = | Get Lines Matching Regexp | ${ret} | (?i)FAIL: .* | + +See `Get Lines Matching Pattern` and `Get Lines Containing +String` if you do not need full regular expression powers (and +complexity). + +``partial_match`` argument is new in Robot Framework 2.9. In earlier + versions exact match was always required. + + + + + +string +pattern +*groups + +Returns a list of all non-overlapping matches in the given string. + +``string`` is the string to find matches from and ``pattern`` is the +regular expression. See `BuiltIn.Should Match Regexp` for more +information about Python regular expression syntax in general and how +to use it in Robot Framework test data in particular. + +If no groups are used, the returned list contains full matches. If one +group is used, the list contains only contents of that group. If +multiple groups are used, the list contains tuples that contain +individual group contents. All groups can be given as indexes (starting +from 1) and named groups also as names. + +Examples: +| ${no match} = | Get Regexp Matches | the string | xxx | +| ${matches} = | Get Regexp Matches | the string | t.. | +| ${one group} = | Get Regexp Matches | the string | t(..) | 1 | +| ${named group} = | Get Regexp Matches | the string | t(?P<name>..) | name | +| ${two groups} = | Get Regexp Matches | the string | t(.)(.) | 1 | 2 | +=> +| ${no match} = [] +| ${matches} = ['the', 'tri'] +| ${one group} = ['he', 'ri'] +| ${named group} = ['he', 'ri'] +| ${two groups} = [('h', 'e'), ('r', 'i')] + +New in Robot Framework 2.9. + + + + + +string +start +end=None + +Returns a substring from ``start`` index to ``end`` index. + +The ``start`` index is inclusive and ``end`` is exclusive. +Indexing starts from 0, and it is possible to use +negative indices to refer to characters from the end. + +Examples: +| ${ignore first} = | Get Substring | ${string} | 1 | | +| ${ignore last} = | Get Substring | ${string} | | -1 | +| ${5th to 10th} = | Get Substring | ${string} | 4 | 10 | +| ${first two} = | Get Substring | ${string} | | 1 | +| ${last two} = | Get Substring | ${string} | -2 | | + + + + + +string +*removables + +Removes all ``removables`` from the given ``string``. + +``removables`` are used as literal strings. Each removable will be +matched to a temporary string from which preceding removables have +been already removed. See second example below. + +Use `Remove String Using Regexp` if more powerful pattern matching is +needed. If only a certain number of matches should be removed, +`Replace String` or `Replace String Using Regexp` can be used. + +A modified version of the string is returned and the original +string is not altered. + +Examples: +| ${str} = | Remove String | Robot Framework | work | +| Should Be Equal | ${str} | Robot Frame | +| ${str} = | Remove String | Robot Framework | o | bt | +| Should Be Equal | ${str} | R Framewrk | + + + + + +string +*patterns + +Removes ``patterns`` from the given ``string``. + +This keyword is otherwise identical to `Remove String`, but +the ``patterns`` to search for are considered to be a regular +expression. See `Replace String Using Regexp` for more information +about the regular expression syntax. That keyword can also be +used if there is a need to remove only a certain number of +occurrences. + + + + + +string +search_for +replace_with +count=-1 + +Replaces ``search_for`` in the given ``string`` with ``replace_with``. + +``search_for`` is used as a literal string. See `Replace String +Using Regexp` if more powerful pattern matching is needed. +If you need to just remove a string see `Remove String`. + +If the optional argument ``count`` is given, only that many +occurrences from left are replaced. Negative ``count`` means +that all occurrences are replaced (default behaviour) and zero +means that nothing is done. + +A modified version of the string is returned and the original +string is not altered. + +Examples: +| ${str} = | Replace String | Hello, world! | world | tellus | +| Should Be Equal | ${str} | Hello, tellus! | | | +| ${str} = | Replace String | Hello, world! | l | ${EMPTY} | count=1 | +| Should Be Equal | ${str} | Helo, world! | | | + + + + + +string +pattern +replace_with +count=-1 + +Replaces ``pattern`` in the given ``string`` with ``replace_with``. + +This keyword is otherwise identical to `Replace String`, but +the ``pattern`` to search for is considered to be a regular +expression. See `BuiltIn.Should Match Regexp` for more +information about Python regular expression syntax in general +and how to use it in Robot Framework test data in particular. + +If you need to just remove a string see `Remove String Using Regexp`. + +Examples: +| ${str} = | Replace String Using Regexp | ${str} | 20\\d\\d-\\d\\d-\\d\\d | <DATE> | +| ${str} = | Replace String Using Regexp | ${str} | (Hello|Hi) | ${EMPTY} | count=1 | + + + + + +item +msg=None + +Fails if the given ``item`` is not a byte string. + +Use `Should Be Unicode String` if you want to verify the ``item`` is a +Unicode string, or `Should Be String` if both Unicode and byte strings +are fine. See `Should Be String` for more details about Unicode strings +and byte strings. + +The default error message can be overridden with the optional +``msg`` argument. + + + + + +string +msg=None + +Fails if the given ``string`` is not in lowercase. + +For example, ``'string'`` and ``'with specials!'`` would pass, and +``'String'``, ``''`` and ``' '`` would fail. + +The default error message can be overridden with the optional +``msg`` argument. + +See also `Should Be Uppercase` and `Should Be Titlecase`. + + + + + +item +msg=None + +Fails if the given ``item`` is not a string. + +With Python 2, except with IronPython, this keyword passes regardless +is the ``item`` a Unicode string or a byte string. Use `Should Be +Unicode String` or `Should Be Byte String` if you want to restrict +the string type. Notice that with Python 2, except with IronPython, +``'string'`` creates a byte string and ``u'unicode'`` must be used to +create a Unicode string. + +With Python 3 and IronPython, this keyword passes if the string is +a Unicode string but fails if it is bytes. Notice that with both +Python 3 and IronPython, ``'string'`` creates a Unicode string, and +``b'bytes'`` must be used to create a byte string. + +The default error message can be overridden with the optional +``msg`` argument. + + + + + +string +msg=None + +Fails if given ``string`` is not title. + +``string`` is a titlecased string if there is at least one +character in it, uppercase characters only follow uncased +characters and lowercase characters only cased ones. + +For example, ``'This Is Title'`` would pass, and ``'Word In UPPER'``, +``'Word In lower'``, ``''`` and ``' '`` would fail. + +The default error message can be overridden with the optional +``msg`` argument. + +See also `Should Be Uppercase` and `Should Be Lowercase`. + + + + + +item +msg=None + +Fails if the given ``item`` is not a Unicode string. + +Use `Should Be Byte String` if you want to verify the ``item`` is a +byte string, or `Should Be String` if both Unicode and byte strings +are fine. See `Should Be String` for more details about Unicode +strings and byte strings. + +The default error message can be overridden with the optional +``msg`` argument. + + + + + +string +msg=None + +Fails if the given ``string`` is not in uppercase. + +For example, ``'STRING'`` and ``'WITH SPECIALS!'`` would pass, and +``'String'``, ``''`` and ``' '`` would fail. + +The default error message can be overridden with the optional +``msg`` argument. + +See also `Should Be Titlecase` and `Should Be Lowercase`. + + + + + +item +msg=None + +Fails if the given ``item`` is a string. + +See `Should Be String` for more details about Unicode strings and byte +strings. + +The default error message can be overridden with the optional +``msg`` argument. + + + + + +string +separator=None +max_split=-1 + +Splits the ``string`` using ``separator`` as a delimiter string. + +If a ``separator`` is not given, any whitespace string is a +separator. In that case also possible consecutive whitespace +as well as leading and trailing whitespace is ignored. + +Split words are returned as a list. If the optional +``max_split`` is given, at most ``max_split`` splits are done, and +the returned list will have maximum ``max_split + 1`` elements. + +Examples: +| @{words} = | Split String | ${string} | +| @{words} = | Split String | ${string} | ,${SPACE} | +| ${pre} | ${post} = | Split String | ${string} | :: | 1 | + +See `Split String From Right` if you want to start splitting +from right, and `Fetch From Left` and `Fetch From Right` if +you only want to get first/last part of the string. + + + + + +string +separator=None +max_split=-1 + +Splits the ``string`` using ``separator`` starting from right. + +Same as `Split String`, but splitting is started from right. This has +an effect only when ``max_split`` is given. + +Examples: +| ${first} | ${rest} = | Split String | ${string} | - | 1 | +| ${rest} | ${last} = | Split String From Right | ${string} | - | 1 | + + + + + +string + +Splits the given ``string`` to characters. + +Example: +| @{characters} = | Split String To Characters | ${string} | + + + + + +string +start=0 +end=None + +Splits the given string to lines. + +It is possible to get only a selection of lines from ``start`` +to ``end`` so that ``start`` index is inclusive and ``end`` is +exclusive. Line numbering starts from 0, and it is possible to +use negative indices to refer to lines from the end. + +Lines are returned without the newlines. The number of +returned lines is automatically logged. + +Examples: +| @{lines} = | Split To Lines | ${manylines} | | | +| @{ignore first} = | Split To Lines | ${manylines} | 1 | | +| @{ignore last} = | Split To Lines | ${manylines} | | -1 | +| @{5th to 10th} = | Split To Lines | ${manylines} | 4 | 10 | +| @{first two} = | Split To Lines | ${manylines} | | 1 | +| @{last two} = | Split To Lines | ${manylines} | -2 | | + +Use `Get Line` if you only need to get a single line. + + + + + +string +mode=both +characters=None + +Remove leading and/or trailing whitespaces from the given string. + +``mode`` is either ``left`` to remove leading characters, ``right`` to +remove trailing characters, ``both`` (default) to remove the +characters from both sides of the string or ``none`` to return the +unmodified string. + +If the optional ``characters`` is given, it must be a string and the +characters in the string will be stripped in the string. Please note, +that this is not a substring to be removed but a list of characters, +see the example below. + +Examples: +| ${stripped}= | Strip String | ${SPACE}Hello${SPACE} | | +| Should Be Equal | ${stripped} | Hello | | +| ${stripped}= | Strip String | ${SPACE}Hello${SPACE} | mode=left | +| Should Be Equal | ${stripped} | Hello${SPACE} | | +| ${stripped}= | Strip String | aabaHelloeee | characters=abe | +| Should Be Equal | ${stripped} | Hello | | + +New in Robot Framework 3.0. + + + + diff --git a/libspecs/Telnet.libspec b/libspecs/Telnet.libspec new file mode 100644 index 000000000..0e1aa812a --- /dev/null +++ b/libspecs/Telnet.libspec @@ -0,0 +1,744 @@ + + +3.1 +test suite +yes +A test library providing communication over Telnet connections. + +``Telnet`` is Robot Framework's standard library that makes it possible to +connect to Telnet servers and execute commands on the opened connections. + +== Table of contents == + +- `Connections` +- `Writing and reading` +- `Configuration` +- `Terminal emulation` +- `Logging` +- `Time string format` +- `Boolean arguments` +- `Importing` +- `Shortcuts` +- `Keywords` + += Connections = + +The first step of using ``Telnet`` is opening a connection with `Open +Connection` keyword. Typically the next step is logging in with `Login` +keyword, and in the end the opened connection can be closed with `Close +Connection`. + +It is possible to open multiple connections and switch the active one +using `Switch Connection`. `Close All Connections` can be used to close +all the connections, which is especially useful in suite teardowns to +guarantee that all connections are always closed. + += Writing and reading = + +After opening a connection and possibly logging in, commands can be +executed or text written to the connection for other reasons using `Write` +and `Write Bare` keywords. The main difference between these two is that +the former adds a [#Configuration|configurable newline] after the text +automatically. + +After writing something to the connection, the resulting output can be +read using `Read`, `Read Until`, `Read Until Regexp`, and `Read Until +Prompt` keywords. Which one to use depends on the context, but the latest +one is often the most convenient. + +As a convenience when running a command, it is possible to use `Execute +Command` that simply uses `Write` and `Read Until Prompt` internally. +`Write Until Expected Output` is useful if you need to wait until writing +something produces a desired output. + +Written and read text is automatically encoded/decoded using a +[#Configuration|configured encoding]. + +The ANSI escape codes, like cursor movement and color codes, are +normally returned as part of the read operation. If an escape code occurs +in middle of a search pattern it may also prevent finding the searched +string. `Terminal emulation` can be used to process these +escape codes as they would be if a real terminal would be in use. + += Configuration = + +Many aspects related the connections can be easily configured either +globally or per connection basis. Global configuration is done when +[#Importing|library is imported], and these values can be overridden per +connection by `Open Connection` or with setting specific keywords +`Set Timeout`, `Set Newline`, `Set Prompt`, `Set Encoding`, +`Set Default Log Level` and `Set Telnetlib Log Level`. + +Values of ``environ_user``, ``window_size``, ``terminal_emulation``, and +``terminal_type`` can not be changed after opening the connection. + +== Timeout == + +Timeout defines how long is the maximum time to wait when reading +output. It is used internally by `Read Until`, `Read Until Regexp`, +`Read Until Prompt`, and `Login` keywords. The default value is 3 seconds. + +== Connection Timeout == + +Connection Timeout defines how long is the maximum time to wait when +opening the telnet connection. It is used internally by `Open Connection`. +The default value is the system global default timeout. + +New in Robot Framework 2.9.2. + +== Newline == + +Newline defines which line separator `Write` keyword should use. The +default value is ``CRLF`` that is typically used by Telnet connections. + +Newline can be given either in escaped format using ``\n`` and ``\r`` or +with special ``LF`` and ``CR`` syntax. + +Examples: +| `Set Newline` | \n | +| `Set Newline` | CRLF | + +== Prompt == + +Often the easiest way to read the output of a command is reading all +the output until the next prompt with `Read Until Prompt`. It also makes +it easier, and faster, to verify did `Login` succeed. + +Prompt can be specified either as a normal string or a regular expression. +The latter is especially useful if the prompt changes as a result of +the executed commands. Prompt can be set to be a regular expression +by giving ``prompt_is_regexp`` argument a true value (see `Boolean +arguments`). + +Examples: +| `Open Connection` | lolcathost | prompt=$ | +| `Set Prompt` | (> |# ) | prompt_is_regexp=true | + +== Encoding == + +To ease handling text containing non-ASCII characters, all written text is +encoded and read text decoded by default. The default encoding is UTF-8 +that works also with ASCII. Encoding can be disabled by using a special +encoding value ``NONE``. This is mainly useful if you need to get the bytes +received from the connection as-is. + +Notice that when writing to the connection, only Unicode strings are +encoded using the defined encoding. Byte strings are expected to be already +encoded correctly. Notice also that normal text in test data is passed to +the library as Unicode and you need to use variables to use bytes. + +It is also possible to configure the error handler to use if encoding or +decoding characters fails. Accepted values are the same that encode/decode +functions in Python strings accept. In practice the following values are +the most useful: + +- ``ignore``: ignore characters that cannot be encoded (default) +- ``strict``: fail if characters cannot be encoded +- ``replace``: replace characters that cannot be encoded with a replacement + character + +Examples: +| `Open Connection` | lolcathost | encoding=Latin1 | encoding_errors=strict | +| `Set Encoding` | ISO-8859-15 | +| `Set Encoding` | errors=ignore | + +== Default log level == + +Default log level specifies the log level keywords use for `logging` unless +they are given an explicit log level. The default value is ``INFO``, and +changing it, for example, to ``DEBUG`` can be a good idea if there is lot +of unnecessary output that makes log files big. + +== Terminal type == + +By default the Telnet library does not negotiate any specific terminal type +with the server. If a specific terminal type, for example ``vt100``, is +desired, the terminal type can be configured in `importing` and with +`Open Connection`. + +== Window size == + +Window size for negotiation with the server can be configured when +`importing` the library and with `Open Connection`. + +== USER environment variable == + +Telnet protocol allows the ``USER`` environment variable to be sent when +connecting to the server. On some servers it may happen that there is no +login prompt, and on those cases this configuration option will allow still +to define the desired username. The option ``environ_user`` can be used in +`importing` and with `Open Connection`. + += Terminal emulation = + +Telnet library supports terminal +emulation with [http://pyte.readthedocs.io|Pyte]. Terminal emulation +will process the output in a virtual screen. This means that ANSI escape +codes, like cursor movements, and also control characters, like +carriage returns and backspaces, have the same effect on the result as they +would have on a normal terminal screen. For example the sequence +``acdc\x1b[3Dbba`` will result in output ``abba``. + +Terminal emulation is taken into use by giving ``terminal_emulation`` +argument a true value (see `Boolean arguments`) either in the library +initialization or with `Open Connection`. + +As Pyte approximates vt-style terminal, you may also want to set the +terminal type as ``vt100``. We also recommend that you increase the window +size, as the terminal emulation will break all lines that are longer than +the window row length. + +When terminal emulation is used, the `newline` and `encoding` can not be +changed anymore after opening the connection. + +Examples: +| `Open Connection` | lolcathost | terminal_emulation=True | terminal_type=vt100 | window_size=400x100 | + +As a prerequisite for using terminal emulation, you need to have Pyte +installed. Due to backwards incompatible changes in Pyte, different +Robot Framework versions support different Pyte versions: + +- Pyte 0.6 and newer are supported by Robot Framework 3.0.3. + Latest Pyte version can be installed (or upgraded) with + ``pip install --upgrade pyte``. +- Pyte 0.5.2 and older are supported by Robot Framework 3.0.2 and earlier. + Pyte 0.5.2 can be installed with ``pip install pyte==0.5.2``. + += Logging = + +All keywords that read something log the output. These keywords take the +log level to use as an optional argument, and if no log level is specified +they use the [#Configuration|configured] default value. + +The valid log levels to use are ``TRACE``, ``DEBUG``, ``INFO`` (default), +and ``WARN``. Levels below ``INFO`` are not shown in log files by default +whereas warnings are shown more prominently. + +The [http://docs.python.org/library/telnetlib.html|telnetlib module] +used by this library has a custom logging system for logging content it +sends and receives. By default these messages are written using ``TRACE`` +level, but the level is configurable with the ``telnetlib_log_level`` +option either in the library initialization, to the `Open Connection` +or by using the `Set Telnetlib Log Level` keyword to the active +connection. Special level ``NONE`` con be used to disable the logging +altogether. + += Time string format = + +Timeouts and other times used must be given as a time string using format +like ``15 seconds`` or ``1min 10s``. If the timeout is given as just +a number, for example, ``10`` or ``1.5``, it is considered to be seconds. +The time string format is described in more detail in an appendix of +[http://robotframework.org/robotframework/#user-guide|Robot Framework User Guide]. + += Boolean arguments = + +Some keywords accept arguments that are handled as Boolean values true or +false. If such an argument is given as a string, it is considered false if +it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or +``0``, case-insensitively. Other strings are considered true regardless +their value, and other argument types are tested using the same +[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. + +True examples: +| `Open Connection` | lolcathost | terminal_emulation=True | # Strings are generally true. | +| `Open Connection` | lolcathost | terminal_emulation=yes | # Same as the above. | +| `Open Connection` | lolcathost | terminal_emulation=${TRUE} | # Python ``True`` is true. | +| `Open Connection` | lolcathost | terminal_emulation=${42} | # Numbers other than 0 are true. | + +False examples: +| `Open Connection` | lolcathost | terminal_emulation=False | # String ``false`` is false. | +| `Open Connection` | lolcathost | terminal_emulation=no | # Also string ``no`` is false. | +| `Open Connection` | lolcathost | terminal_emulation=${EMPTY} | # Empty string is false. | +| `Open Connection` | lolcathost | terminal_emulation=${FALSE} | # Python ``False`` is false. | + +Considering string ``NONE`` false is new in Robot Framework 3.0.3 and +considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. + + +timeout=3 seconds +newline=CRLF +prompt=None +prompt_is_regexp=False +encoding=UTF-8 +encoding_errors=ignore +default_log_level=INFO +window_size=None +environ_user=None +terminal_emulation=False +terminal_type=None +telnetlib_log_level=TRACE +connection_timeout=None + +Telnet library can be imported with optional configuration parameters. + +Configuration parameters are used as default values when new +connections are opened with `Open Connection` keyword. They can also be +overridden after opening the connection using the `Set ...` `keywords`. +See these keywords as well as `Configuration`, `Terminal emulation` and +`Logging` sections above for more information about these parameters +and their possible values. + +See `Time string format` and `Boolean arguments` sections for +information about using arguments accepting times and Boolean values, +respectively. + +Examples (use only one of these): +| = Setting = | = Value = | = Value = | = Value = | = Value = | = Comment = | +| Library | Telnet | | | | # default values | +| Library | Telnet | 5 seconds | | | # set only timeout | +| Library | Telnet | newline=LF | encoding=ISO-8859-1 | | # set newline and encoding using named arguments | +| Library | Telnet | prompt=$ | | | # set prompt | +| Library | Telnet | prompt=(> |# ) | prompt_is_regexp=yes | | # set prompt as a regular expression | +| Library | Telnet | terminal_emulation=True | terminal_type=vt100 | window_size=400x100 | # use terminal emulation with defined window size and terminal type | +| Library | Telnet | telnetlib_log_level=NONE | | | # disable logging messages from the underlying telnetlib | + + + + + + +Closes all open connections and empties the connection cache. + +If multiple connections are opened, this keyword should be used in +a test or suite teardown to make sure that all connections are closed. +It is not an error is some of the connections have already been closed +by `Close Connection`. + +After this keyword, new indexes returned by `Open Connection` +keyword are reset to 1. + + + + + +loglevel=None + +Closes the current Telnet connection. + +Remaining output in the connection is read, logged, and returned. +It is not an error to close an already closed connection. + +Use `Close All Connections` if you want to make sure all opened +connections are closed. + +See `Logging` section for more information about log levels. + + + + + +command +loglevel=None +strip_prompt=False + +Executes the given ``command`` and reads, logs, and returns everything until the prompt. + +This keyword requires the prompt to be [#Configuration|configured] +either in `importing` or with `Open Connection` or `Set Prompt` keyword. + +This is a convenience keyword that uses `Write` and `Read Until Prompt` +internally. Following two examples are thus functionally identical: + +| ${out} = | `Execute Command` | pwd | + +| `Write` | pwd | +| ${out} = | `Read Until Prompt` | + +See `Logging` section for more information about log levels and `Read +Until Prompt` for more information about the ``strip_prompt`` parameter. + + + + + +username +password +login_prompt=login: +password_prompt=Password: +login_timeout=1 second +login_incorrect=Login incorrect + +Logs in to the Telnet server with the given user information. + +This keyword reads from the connection until the ``login_prompt`` is +encountered and then types the given ``username``. Then it reads until +the ``password_prompt`` and types the given ``password``. In both cases +a newline is appended automatically and the connection specific +timeout used when waiting for outputs. + +How logging status is verified depends on whether a prompt is set for +this connection or not: + +1) If the prompt is set, this keyword reads the output until the prompt +is found using the normal timeout. If no prompt is found, login is +considered failed and also this keyword fails. Note that in this case +both ``login_timeout`` and ``login_incorrect`` arguments are ignored. + +2) If the prompt is not set, this keywords sleeps until ``login_timeout`` +and then reads all the output available on the connection. If the +output contains ``login_incorrect`` text, login is considered failed +and also this keyword fails. + +See `Configuration` section for more information about setting +newline, timeout, and prompt. + + + + + +host +alias=None +port=23 +timeout=None +newline=None +prompt=None +prompt_is_regexp=False +encoding=None +encoding_errors=None +default_log_level=None +window_size=None +environ_user=None +terminal_emulation=None +terminal_type=None +telnetlib_log_level=None +connection_timeout=None + +Opens a new Telnet connection to the given host and port. + +The ``timeout``, ``newline``, ``prompt``, ``prompt_is_regexp``, +``encoding``, ``default_log_level``, ``window_size``, ``environ_user``, +``terminal_emulation``, ``terminal_type`` and ``telnetlib_log_level`` +arguments get default values when the library is [#Importing|imported]. +Setting them here overrides those values for the opened connection. +See `Configuration`, `Terminal emulation` and `Logging` sections for +more information about these parameters and their possible values. + +Possible already opened connections are cached and it is possible to +switch back to them using `Switch Connection` keyword. It is possible to +switch either using explicitly given ``alias`` or using index returned +by this keyword. Indexing starts from 1 and is reset back to it by +`Close All Connections` keyword. + + + + + +loglevel=None + +Reads everything that is currently available in the output. + +Read output is both returned and logged. See `Logging` section for more +information about log levels. + + + + + +expected +loglevel=None + +Reads output until ``expected`` text is encountered. + +Text up to and including the match is returned and logged. If no match +is found, this keyword fails. How much to wait for the output depends +on the [#Configuration|configured timeout]. + +See `Logging` section for more information about log levels. Use +`Read Until Regexp` if more complex matching is needed. + + + + + +loglevel=None +strip_prompt=False + +Reads output until the prompt is encountered. + +This keyword requires the prompt to be [#Configuration|configured] +either in `importing` or with `Open Connection` or `Set Prompt` keyword. + +By default, text up to and including the prompt is returned and logged. +If no prompt is found, this keyword fails. How much to wait for the +output depends on the [#Configuration|configured timeout]. + +If you want to exclude the prompt from the returned output, set +``strip_prompt`` to a true value (see `Boolean arguments`). If your +prompt is a regular expression, make sure that the expression spans the +whole prompt, because only the part of the output that matches the +regular expression is stripped away. + +See `Logging` section for more information about log levels. + + + + + +*expected + +Reads output until any of the ``expected`` regular expressions match. + +This keyword accepts any number of regular expressions patterns or +compiled Python regular expression objects as arguments. Text up to +and including the first match to any of the regular expressions is +returned and logged. If no match is found, this keyword fails. How much +to wait for the output depends on the [#Configuration|configured timeout]. + +If the last given argument is a [#Logging|valid log level], it is used +as ``loglevel`` similarly as with `Read Until` keyword. + +See the documentation of +[http://docs.python.org/library/re.html|Python re module] +for more information about the supported regular expression syntax. +Notice that possible backslashes need to be escaped in Robot Framework +test data. + +Examples: +| `Read Until Regexp` | (#|$) | +| `Read Until Regexp` | first_regexp | second_regexp | +| `Read Until Regexp` | \\d{4}-\\d{2}-\\d{2} | DEBUG | + + + + + +level + +Sets the default log level used for `logging` in the current connection. + +The old default log level is returned and can be used to restore the +log level later. + +See `Configuration` section for more information about global and +connection specific configuration. + + + + + +encoding=None +errors=None + +Sets the encoding to use for `writing and reading` in the current connection. + +The given ``encoding`` specifies the encoding to use when written/read +text is encoded/decoded, and ``errors`` specifies the error handler to +use if encoding/decoding fails. Either of these can be omitted and in +that case the old value is not affected. Use string ``NONE`` to disable +encoding altogether. + +See `Configuration` section for more information about encoding and +error handlers, as well as global and connection specific configuration +in general. + +The old values are returned and can be used to restore the encoding +and the error handler later. See `Set Prompt` for a similar example. + +If terminal emulation is used, the encoding can not be changed on an open +connection. + + + + + +newline + +Sets the newline used by `Write` keyword in the current connection. + +The old newline is returned and can be used to restore the newline later. +See `Set Timeout` for a similar example. + +If terminal emulation is used, the newline can not be changed on an open +connection. + +See `Configuration` section for more information about global and +connection specific configuration. + + + + + +prompt +prompt_is_regexp=False + +Sets the prompt used by `Read Until Prompt` and `Login` in the current connection. + +If ``prompt_is_regexp`` is given a true value (see `Boolean arguments`), +the given ``prompt`` is considered to be a regular expression. + +The old prompt is returned and can be used to restore the prompt later. + +Example: +| ${prompt} | ${regexp} = | `Set Prompt` | $ | +| `Do Something` | +| `Set Prompt` | ${prompt} | ${regexp} | + +See the documentation of +[http://docs.python.org/library/re.html|Python re module] +for more information about the supported regular expression syntax. +Notice that possible backslashes need to be escaped in Robot Framework +test data. + +See `Configuration` section for more information about global and +connection specific configuration. + + + + + +level + +Sets the log level used for `logging` in the underlying ``telnetlib``. + +Note that ``telnetlib`` can be very noisy thus using the level ``NONE`` +can shutdown the messages generated by this library. + + + + + +timeout + +Sets the timeout used for waiting output in the current connection. + +Read operations that expect some output to appear (`Read Until`, `Read +Until Regexp`, `Read Until Prompt`, `Login`) use this timeout and fail +if the expected output does not appear before this timeout expires. + +The ``timeout`` must be given in `time string format`. The old timeout +is returned and can be used to restore the timeout later. + +Example: +| ${old} = | `Set Timeout` | 2 minute 30 seconds | +| `Do Something` | +| `Set Timeout` | ${old} | + +See `Configuration` section for more information about global and +connection specific configuration. + + + + + +index_or_alias + +Switches between active connections using an index or an alias. + +Aliases can be given to `Open Connection` keyword which also always +returns the connection index. + +This keyword returns the index of previous active connection. + +Example: +| `Open Connection` | myhost.net | | | +| `Login` | john | secret | | +| `Write` | some command | | | +| `Open Connection` | yourhost.com | 2nd conn | | +| `Login` | root | password | | +| `Write` | another cmd | | | +| ${old index}= | `Switch Connection` | 1 | # index | +| `Write` | something | | | +| `Switch Connection` | 2nd conn | | # alias | +| `Write` | whatever | | | +| `Switch Connection` | ${old index} | | # back to original | +| [Teardown] | `Close All Connections` | | | + +The example above expects that there were no other open +connections when opening the first one, because it used index +``1`` when switching to the connection later. If you are not +sure about that, you can store the index into a variable as +shown below. + +| ${index} = | `Open Connection` | myhost.net | +| `Do Something` | | | +| `Switch Connection` | ${index} | | + + + + + +text +loglevel=None + +Writes the given text plus a newline into the connection. + +The newline character sequence to use can be [#Configuration|configured] +both globally and per connection basis. The default value is ``CRLF``. + +This keyword consumes the written text, until the added newline, from +the output and logs and returns it. The given text itself must not +contain newlines. Use `Write Bare` instead if either of these features +causes a problem. + +*Note:* This keyword does not return the possible output of the executed +command. To get the output, one of the `Read ...` `keywords` must be +used. See `Writing and reading` section for more details. + +See `Logging` section for more information about log levels. + + + + + +text + +Writes the given text, and nothing else, into the connection. + +This keyword does not append a newline nor consume the written text. +Use `Write` if these features are needed. + + + + + +character + +Writes the given control character into the connection. + +The control character is prepended with an IAC (interpret as command) +character. + +The following control character names are supported: BRK, IP, AO, AYT, +EC, EL, NOP. Additionally, you can use arbitrary numbers to send any +control character. + +Example: +| Write Control Character | BRK | # Send Break command | +| Write Control Character | 241 | # Send No operation command | + + + + + +text +expected +timeout +retry_interval +loglevel=None + +Writes the given ``text`` repeatedly, until ``expected`` appears in the output. + +``text`` is written without appending a newline and it is consumed from +the output before trying to find ``expected``. If ``expected`` does not +appear in the output within ``timeout``, this keyword fails. + +``retry_interval`` defines the time to wait ``expected`` to appear before +writing the ``text`` again. Consuming the written ``text`` is subject to +the normal [#Configuration|configured timeout]. + +Both ``timeout`` and ``retry_interval`` must be given in `time string +format`. See `Logging` section for more information about log levels. + +Example: +| Write Until Expected Output | ps -ef| grep myprocess\r\n | myprocess | +| ... | 5 s | 0.5 s | + +The above example writes command ``ps -ef | grep myprocess\r\n`` until +``myprocess`` appears in the output. The command is written every 0.5 +seconds and the keyword fails if ``myprocess`` does not appear in +the output in 5 seconds. + + + + diff --git a/libspecs/XML.libspec b/libspecs/XML.libspec new file mode 100644 index 000000000..a5b64dc04 --- /dev/null +++ b/libspecs/XML.libspec @@ -0,0 +1,1365 @@ + + +3.1 +global +yes +Robot Framework test library for verifying and modifying XML documents. + +As the name implies, _XML_ is a test library for verifying contents of XML +files. In practice it is a pretty thin wrapper on top of Python's +[http://docs.python.org/library/xml.etree.elementtree.html|ElementTree XML API]. + +The library has the following main usages: + +- Parsing an XML file, or a string containing XML, into an XML element + structure and finding certain elements from it for for further analysis + (e.g. `Parse XML` and `Get Element` keywords). +- Getting text or attributes of elements + (e.g. `Get Element Text` and `Get Element Attribute`). +- Directly verifying text, attributes, or whole elements + (e.g `Element Text Should Be` and `Elements Should Be Equal`). +- Modifying XML and saving it (e.g. `Set Element Text`, `Add Element` + and `Save XML`). + +== Table of contents == + +- `Parsing XML` +- `Using lxml` +- `Example` +- `Finding elements with xpath` +- `Element attributes` +- `Handling XML namespaces` +- `Boolean arguments` +- `Pattern matching` +- `Shortcuts` +- `Keywords` + += Parsing XML = + +XML can be parsed into an element structure using `Parse XML` keyword. +It accepts both paths to XML files and strings that contain XML. The +keyword returns the root element of the structure, which then contains +other elements as its children and their children. Possible comments and +processing instructions in the source XML are removed. + +XML is not validated during parsing even if has a schema defined. How +possible doctype elements are handled otherwise depends on the used XML +module and on the platform. The standard ElementTree strips doctypes +altogether but when `using lxml` they are preserved when XML is saved. + +The element structure returned by `Parse XML`, as well as elements +returned by keywords such as `Get Element`, can be used as the ``source`` +argument with other keywords. In addition to an already parsed XML +structure, other keywords also accept paths to XML files and strings +containing XML similarly as `Parse XML`. Notice that keywords that modify +XML do not write those changes back to disk even if the source would be +given as a path to a file. Changes must always saved explicitly using +`Save XML` keyword. + +When the source is given as a path to a file, the forward slash character +(``/``) can be used as the path separator regardless the operating system. +On Windows also the backslash works, but it the test data it needs to be +escaped by doubling it (``\\``). Using the built-in variable ``${/}`` +naturally works too. + += Using lxml = + +By default this library uses Python's standard +[http://docs.python.org/library/xml.etree.elementtree.html|ElementTree] +module for parsing XML, but it can be configured to use +[http://lxml.de|lxml] module instead when `importing` the library. +The resulting element structure has same API regardless which module +is used for parsing. + +The main benefits of using lxml is that it supports richer xpath syntax +than the standard ElementTree and enables using `Evaluate Xpath` keyword. +It also preserves the doctype and possible namespace prefixes saving XML. + += Example = + +The following simple example demonstrates parsing XML and verifying its +contents both using keywords in this library and in _BuiltIn_ and +_Collections_ libraries. How to use xpath expressions to find elements +and what attributes the returned elements contain are discussed, with +more examples, in `Finding elements with xpath` and `Element attributes` +sections. + +In this example, as well as in many other examples in this documentation, +``${XML}`` refers to the following example XML document. In practice +``${XML}`` could either be a path to an XML file or it could contain the XML +itself. + +| <example> +| <first id="1">text</first> +| <second id="2"> +| <child/> +| </second> +| <third> +| <child>more text</child> +| <second id="child"/> +| <child><grandchild/></child> +| </third> +| <html> +| <p> +| Text with <b>bold</b> and <i>italics</i>. +| </p> +| </html> +| </example> + +| ${root} = | `Parse XML` | ${XML} | | | +| `Should Be Equal` | ${root.tag} | example | | | +| ${first} = | `Get Element` | ${root} | first | | +| `Should Be Equal` | ${first.text} | text | | | +| `Dictionary Should Contain Key` | ${first.attrib} | id | | +| `Element Text Should Be` | ${first} | text | | | +| `Element Attribute Should Be` | ${first} | id | 1 | | +| `Element Attribute Should Be` | ${root} | id | 1 | xpath=first | +| `Element Attribute Should Be` | ${XML} | id | 1 | xpath=first | + +Notice that in the example three last lines are equivalent. Which one to +use in practice depends on which other elements you need to get or verify. +If you only need to do one verification, using the last line alone would +suffice. If more verifications are needed, parsing the XML with `Parse XML` +only once would be more efficient. + += Finding elements with xpath = + +ElementTree, and thus also this library, supports finding elements using +xpath expressions. ElementTree does not, however, support the full xpath +standard. The supported xpath syntax is explained below and +[https://docs.python.org/library/xml.etree.elementtree.html#xpath-support| +ElementTree documentation] provides more details. In the examples +``${XML}`` refers to the same XML structure as in the earlier example. + +If lxml support is enabled when `importing` the library, the whole +[http://www.w3.org/TR/xpath/|xpath 1.0 standard] is supported. +That includes everything listed below but also lot of other useful +constructs. + +== Tag names == + +When just a single tag name is used, xpath matches all direct child +elements that have that tag name. + +| ${elem} = | `Get Element` | ${XML} | third | +| `Should Be Equal` | ${elem.tag} | third | | +| @{children} = | `Get Elements` | ${elem} | child | +| `Length Should Be` | ${children} | 2 | | + +== Paths == + +Paths are created by combining tag names with a forward slash (``/``). For +example, ``parent/child`` matches all ``child`` elements under ``parent`` +element. Notice that if there are multiple ``parent`` elements that all +have ``child`` elements, ``parent/child`` xpath will match all these +``child`` elements. + +| ${elem} = | `Get Element` | ${XML} | second/child | +| `Should Be Equal` | ${elem.tag} | child | | +| ${elem} = | `Get Element` | ${XML} | third/child/grandchild | +| `Should Be Equal` | ${elem.tag} | grandchild | | + +== Wildcards == + +An asterisk (``*``) can be used in paths instead of a tag name to denote +any element. + +| @{children} = | `Get Elements` | ${XML} | */child | +| `Length Should Be` | ${children} | 3 | | + +== Current element == + +The current element is denoted with a dot (``.``). Normally the current +element is implicit and does not need to be included in the xpath. + +== Parent element == + +The parent element of another element is denoted with two dots (``..``). +Notice that it is not possible to refer to the parent of the current +element. + +| ${elem} = | `Get Element` | ${XML} | */second/.. | +| `Should Be Equal` | ${elem.tag} | third | | + +== Search all sub elements == + +Two forward slashes (``//``) mean that all sub elements, not only the +direct children, are searched. If the search is started from the current +element, an explicit dot is required. + +| @{elements} = | `Get Elements` | ${XML} | .//second | +| `Length Should Be` | ${elements} | 2 | | +| ${b} = | `Get Element` | ${XML} | html//b | +| `Should Be Equal` | ${b.text} | bold | | + +== Predicates == + +Predicates allow selecting elements using also other criteria than tag +names, for example, attributes or position. They are specified after the +normal tag name or path using syntax ``path[predicate]``. The path can have +wildcards and other special syntax explained earlier. What predicates +the standard ElementTree supports is explained in the table below. + +| = Predicate = | = Matches = | = Example = | +| @attrib | Elements with attribute ``attrib``. | second[@id] | +| @attrib="value" | Elements with attribute ``attrib`` having value ``value``. | *[@id="2"] | +| position | Elements at the specified position. Position can be an integer (starting from 1), expression ``last()``, or relative expression like ``last() - 1``. | third/child[1] | +| tag | Elements with a child element named ``tag``. | third/child[grandchild] | + +Predicates can also be stacked like ``path[predicate1][predicate2]``. +A limitation is that possible position predicate must always be first. + += Element attributes = + +All keywords returning elements, such as `Parse XML`, and `Get Element`, +return ElementTree's +[http://docs.python.org/library/xml.etree.elementtree.html#element-objects|Element objects]. +These elements can be used as inputs for other keywords, but they also +contain several useful attributes that can be accessed directly using +the extended variable syntax. + +The attributes that are both useful and convenient to use in the test +data are explained below. Also other attributes, including methods, can +be accessed, but that is typically better to do in custom libraries than +directly in the test data. + +The examples use the same ``${XML}`` structure as the earlier examples. + +== tag == + +The tag of the element. + +| ${root} = | `Parse XML` | ${XML} | +| `Should Be Equal` | ${root.tag} | example | + +== text == + +The text that the element contains or Python ``None`` if the element has no +text. Notice that the text _does not_ contain texts of possible child +elements nor text after or between children. Notice also that in XML +whitespace is significant, so the text contains also possible indentation +and newlines. To get also text of the possible children, optionally +whitespace normalized, use `Get Element Text` keyword. + +| ${1st} = | `Get Element` | ${XML} | first | +| `Should Be Equal` | ${1st.text} | text | | +| ${2nd} = | `Get Element` | ${XML} | second/child | +| `Should Be Equal` | ${2nd.text} | ${NONE} | | +| ${p} = | `Get Element` | ${XML} | html/p | +| `Should Be Equal` | ${p.text} | \n${SPACE*6}Text with${SPACE} | + +== tail == + +The text after the element before the next opening or closing tag. Python +``None`` if the element has no tail. Similarly as with ``text``, also +``tail`` contains possible indentation and newlines. + +| ${b} = | `Get Element` | ${XML} | html/p/b | +| `Should Be Equal` | ${b.tail} | ${SPACE}and${SPACE} | + +== attrib == + +A Python dictionary containing attributes of the element. + +| ${2nd} = | `Get Element` | ${XML} | second | +| `Should Be Equal` | ${2nd.attrib['id']} | 2 | | +| ${3rd} = | `Get Element` | ${XML} | third | +| `Should Be Empty` | ${3rd.attrib} | | | + += Handling XML namespaces = + +ElementTree and lxml handle possible namespaces in XML documents by adding +the namespace URI to tag names in so called Clark Notation. That is +inconvenient especially with xpaths, and by default this library strips +those namespaces away and moves them to ``xmlns`` attribute instead. That +can be avoided by passing ``keep_clark_notation`` argument to `Parse XML` +keyword. Alternatively `Parse XML` supports stripping namespace information +altogether by using ``strip_namespaces`` argument. The pros and cons of +different approaches are discussed in more detail below. + +== How ElementTree handles namespaces == + +If an XML document has namespaces, ElementTree adds namespace information +to tag names in [http://www.jclark.com/xml/xmlns.htm|Clark Notation] +(e.g. ``{http://ns.uri}tag``) and removes original ``xmlns`` attributes. +This is done both with default namespaces and with namespaces with a prefix. +How it works in practice is illustrated by the following example, where +``${NS}`` variable contains this XML document: + +| <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" +| xmlns="http://www.w3.org/1999/xhtml"> +| <xsl:template match="/"> +| <html></html> +| </xsl:template> +| </xsl:stylesheet> + +| ${root} = | `Parse XML` | ${NS} | keep_clark_notation=yes | +| `Should Be Equal` | ${root.tag} | {http://www.w3.org/1999/XSL/Transform}stylesheet | +| `Element Should Exist` | ${root} | {http://www.w3.org/1999/XSL/Transform}template/{http://www.w3.org/1999/xhtml}html | +| `Should Be Empty` | ${root.attrib} | + +As you can see, including the namespace URI in tag names makes xpaths +really long and complex. + +If you save the XML, ElementTree moves namespace information back to +``xmlns`` attributes. Unfortunately it does not restore the original +prefixes: + +| <ns0:stylesheet xmlns:ns0="http://www.w3.org/1999/XSL/Transform"> +| <ns0:template match="/"> +| <ns1:html xmlns:ns1="http://www.w3.org/1999/xhtml"></ns1:html> +| </ns0:template> +| </ns0:stylesheet> + +The resulting output is semantically same as the original, but mangling +prefixes like this may still not be desirable. Notice also that the actual +output depends slightly on ElementTree version. + +== Default namespace handling == + +Because the way ElementTree handles namespaces makes xpaths so complicated, +this library, by default, strips namespaces from tag names and moves that +information back to ``xmlns`` attributes. How this works in practice is +shown by the example below, where ``${NS}`` variable contains the same XML +document as in the previous example. + +| ${root} = | `Parse XML` | ${NS} | +| `Should Be Equal` | ${root.tag} | stylesheet | +| `Element Should Exist` | ${root} | template/html | +| `Element Attribute Should Be` | ${root} | xmlns | http://www.w3.org/1999/XSL/Transform | +| `Element Attribute Should Be` | ${root} | xmlns | http://www.w3.org/1999/xhtml | xpath=template/html | + +Now that tags do not contain namespace information, xpaths are simple again. + +A minor limitation of this approach is that namespace prefixes are lost. +As a result the saved output is not exactly same as the original one in +this case either: + +| <stylesheet xmlns="http://www.w3.org/1999/XSL/Transform"> +| <template match="/"> +| <html xmlns="http://www.w3.org/1999/xhtml"></html> +| </template> +| </stylesheet> + +Also this output is semantically same as the original. If the original XML +had only default namespaces, the output would also look identical. + +== Namespaces when using lxml == + +This library handles namespaces same way both when `using lxml` and when +not using it. There are, however, differences how lxml internally handles +namespaces compared to the standard ElementTree. The main difference is +that lxml stores information about namespace prefixes and they are thus +preserved if XML is saved. Another visible difference is that lxml includes +namespace information in child elements got with `Get Element` if the +parent element has namespaces. + +== Stripping namespaces altogether == + +Because namespaces often add unnecessary complexity, `Parse XML` supports +stripping them altogether by using ``strip_namespaces=True``. When this +option is enabled, namespaces are not shown anywhere nor are they included +if XML is saved. + +== Attribute namespaces == + +Attributes in XML documents are, by default, in the same namespaces as +the element they belong to. It is possible to use different namespaces +by using prefixes, but this is pretty rare. + +If an attribute has a namespace prefix, ElementTree will replace it with +Clark Notation the same way it handles elements. Because stripping +namespaces from attributes could cause attribute conflicts, this library +does not handle attribute namespaces at all. Thus the following example +works the same way regardless how namespaces are handled. + +| ${root} = | `Parse XML` | <root id="1" ns:id="2" xmlns:ns="http://my.ns"/> | +| `Element Attribute Should Be` | ${root} | id | 1 | +| `Element Attribute Should Be` | ${root} | {http://my.ns}id | 2 | + += Boolean arguments = + +Some keywords accept arguments that are handled as Boolean values true or +false. If such an argument is given as a string, it is considered false if +it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or +``0``, case-insensitively. Other strings are considered true regardless +their value, and other argument types are tested using the same +[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. + +True examples: +| `Parse XML` | ${XML} | keep_clark_notation=True | # Strings are generally true. | +| `Parse XML` | ${XML} | keep_clark_notation=yes | # Same as the above. | +| `Parse XML` | ${XML} | keep_clark_notation=${TRUE} | # Python ``True`` is true. | +| `Parse XML` | ${XML} | keep_clark_notation=${42} | # Numbers other than 0 are true. | + +False examples: +| `Parse XML` | ${XML} | keep_clark_notation=False | # String ``false`` is false. | +| `Parse XML` | ${XML} | keep_clark_notation=no | # Also string ``no`` is false. | +| `Parse XML` | ${XML} | keep_clark_notation=${EMPTY} | # Empty string is false. | +| `Parse XML` | ${XML} | keep_clark_notation=${FALSE} | # Python ``False`` is false. | + +Considering string ``NONE`` false is new in Robot Framework 3.0.3 and +considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. + +== Pattern matching == + +Some keywords, for example `Elements Should Match`, support so called +[http://en.wikipedia.org/wiki/Glob_(programming)|glob patterns] where: + +| ``*`` | matches any string, even an empty string | +| ``?`` | matches any single character | +| ``[chars]`` | matches one character in the bracket | +| ``[!chars]`` | matches one character not in the bracket | +| ``[a-z]`` | matches one character from the range in the bracket | +| ``[!a-z]`` | matches one character not from the range in the bracket | + +Unlike with glob patterns normally, path separator characters ``/`` and +``\`` and the newline character ``\n`` are matches by the above +wildcards. + +Support for brackets like ``[abc]`` and ``[!a-z]`` is new in +Robot Framework 3.1 + + +use_lxml=False + +Import library with optionally lxml mode enabled. + +By default this library uses Python's standard +[http://docs.python.org/library/xml.etree.elementtree.html|ElementTree] +module for parsing XML. If ``use_lxml`` argument is given a true value +(see `Boolean arguments`), the library will use [http://lxml.de|lxml] +module instead. See `Using lxml` section for benefits provided by lxml. + +Using lxml requires that the lxml module is installed on the system. +If lxml mode is enabled but the module is not installed, this library +will emit a warning and revert back to using the standard ElementTree. + + + + + +source +element +index=None +xpath=. + +Adds a child element to the specified element. + +The element to whom to add the new element is specified using ``source`` +and ``xpath``. They have exactly the same semantics as with `Get Element` +keyword. The resulting XML structure is returned, and if the ``source`` +is an already parsed XML structure, it is also modified in place. + +The ``element`` to add can be specified as a path to an XML file or +as a string containing XML, or it can be an already parsed XML element. +The element is copied before adding so modifying either the original +or the added element has no effect on the other +. +The element is added as the last child by default, but a custom index +can be used to alter the position. Indices start from zero (0 = first +position, 1 = second position, etc.), and negative numbers refer to +positions at the end (-1 = second last position, -2 = third last, etc.). + +Examples using ``${XML}`` structure from `Example`: +| Add Element | ${XML} | <new id="x"><c1/></new> | +| Add Element | ${XML} | <c2/> | xpath=new | +| Add Element | ${XML} | <c3/> | index=1 | xpath=new | +| ${new} = | Get Element | ${XML} | new | +| Elements Should Be Equal | ${new} | <new id="x"><c1/><c3/><c2/></new> | + +Use `Remove Element` or `Remove Elements` to remove elements. + + + + + +source +xpath=. +clear_tail=False + +Clears the contents of the specified element. + +The element to clear is specified using ``source`` and ``xpath``. They +have exactly the same semantics as with `Get Element` keyword. +The resulting XML structure is returned, and if the ``source`` is +an already parsed XML structure, it is also modified in place. + +Clearing the element means removing its text, attributes, and children. +Element's tail text is not removed by default, but that can be changed +by giving ``clear_tail`` a true value (see `Boolean arguments`). See +`Element attributes` section for more information about tail in +general. + +Examples using ``${XML}`` structure from `Example`: +| Clear Element | ${XML} | xpath=first | +| ${first} = | Get Element | ${XML} | xpath=first | +| Elements Should Be Equal | ${first} | <first/> | +| Clear Element | ${XML} | xpath=html/p/b | clear_tail=yes | +| Element Text Should Be | ${XML} | Text with italics. | xpath=html/p | normalize_whitespace=yes | +| Clear Element | ${XML} | +| Elements Should Be Equal | ${XML} | <example/> | + +Use `Remove Element` to remove the whole element. + + + + + +source +xpath=. + +Returns a copy of the specified element. + +The element to copy is specified using ``source`` and ``xpath``. They +have exactly the same semantics as with `Get Element` keyword. + +If the copy or the original element is modified afterwards, the changes +have no effect on the other. + +Examples using ``${XML}`` structure from `Example`: +| ${elem} = | Get Element | ${XML} | xpath=first | +| ${copy1} = | Copy Element | ${elem} | +| ${copy2} = | Copy Element | ${XML} | xpath=first | +| Set Element Text | ${XML} | new text | xpath=first | +| Set Element Attribute | ${copy1} | id | new | +| Elements Should Be Equal | ${elem} | <first id="1">new text</first> | +| Elements Should Be Equal | ${copy1} | <first id="new">text</first> | +| Elements Should Be Equal | ${copy2} | <first id="1">text</first> | + + + + + +source +name +expected +xpath=. +message=None + +Verifies that the specified attribute is ``expected``. + +The element whose attribute is verified is specified using ``source`` +and ``xpath``. They have exactly the same semantics as with +`Get Element` keyword. + +The keyword passes if the attribute ``name`` of the element is equal to +the ``expected`` value, and otherwise it fails. The default error +message can be overridden with the ``message`` argument. + +To test that the element does not have a certain attribute, Python +``None`` (i.e. variable ``${NONE}``) can be used as the expected value. +A cleaner alternative is using `Element Should Not Have Attribute`. + +Examples using ``${XML}`` structure from `Example`: +| Element Attribute Should Be | ${XML} | id | 1 | xpath=first | +| Element Attribute Should Be | ${XML} | id | ${NONE} | | + +See also `Element Attribute Should Match` and `Get Element Attribute`. + + + + + +source +name +pattern +xpath=. +message=None + +Verifies that the specified attribute matches ``expected``. + +This keyword works exactly like `Element Attribute Should Be` except +that the expected value can be given as a pattern that the attribute of +the element must match. + +Pattern matching is similar as matching files in a shell with +``*``, ``?`` and ``[chars]`` acting as wildcards. See the +`Pattern matching` section for more information. + +Examples using ``${XML}`` structure from `Example`: +| Element Attribute Should Match | ${XML} | id | ? | xpath=first | +| Element Attribute Should Match | ${XML} | id | c*d | xpath=third/second | + + + + + +source +xpath=. +message=None + +Verifies that one or more element match the given ``xpath``. + +Arguments ``source`` and ``xpath`` have exactly the same semantics as +with `Get Elements` keyword. Keyword passes if the ``xpath`` matches +one or more elements in the ``source``. The default error message can +be overridden with the ``message`` argument. + +See also `Element Should Not Exist` as well as `Get Element Count` +that this keyword uses internally. + + + + + +source +xpath=. +message=None + +Verifies that no element match the given ``xpath``. + +Arguments ``source`` and ``xpath`` have exactly the same semantics as +with `Get Elements` keyword. Keyword fails if the ``xpath`` matches any +element in the ``source``. The default error message can be overridden +with the ``message`` argument. + +See also `Element Should Exist` as well as `Get Element Count` +that this keyword uses internally. + + + + + +source +name +xpath=. +message=None + +Verifies that the specified element does not have attribute ``name``. + +The element whose attribute is verified is specified using ``source`` +and ``xpath``. They have exactly the same semantics as with +`Get Element` keyword. + +The keyword fails if the specified element has attribute ``name``. The +default error message can be overridden with the ``message`` argument. + +Examples using ``${XML}`` structure from `Example`: +| Element Should Not Have Attribute | ${XML} | id | +| Element Should Not Have Attribute | ${XML} | xxx | xpath=first | + +See also `Get Element Attribute`, `Get Element Attributes`, +`Element Text Should Be` and `Element Text Should Match`. + + + + + +source +expected +xpath=. +normalize_whitespace=False +message=None + +Verifies that the text of the specified element is ``expected``. + +The element whose text is verified is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. + +The text to verify is got from the specified element using the same +logic as with `Get Element Text`. This includes optional whitespace +normalization using the ``normalize_whitespace`` option. + +The keyword passes if the text of the element is equal to the +``expected`` value, and otherwise it fails. The default error message +can be overridden with the ``message`` argument. Use `Element Text +Should Match` to verify the text against a pattern instead of an exact +value. + +Examples using ``${XML}`` structure from `Example`: +| Element Text Should Be | ${XML} | text | xpath=first | +| Element Text Should Be | ${XML} | ${EMPTY} | xpath=second/child | +| ${paragraph} = | Get Element | ${XML} | xpath=html/p | +| Element Text Should Be | ${paragraph} | Text with bold and italics. | normalize_whitespace=yes | + + + + + +source +pattern +xpath=. +normalize_whitespace=False +message=None + +Verifies that the text of the specified element matches ``expected``. + +This keyword works exactly like `Element Text Should Be` except that +the expected value can be given as a pattern that the text of the +element must match. + +Pattern matching is similar as matching files in a shell with +``*``, ``?`` and ``[chars]`` acting as wildcards. See the +`Pattern matching` section for more information. + +Examples using ``${XML}`` structure from `Example`: +| Element Text Should Match | ${XML} | t??? | xpath=first | +| ${paragraph} = | Get Element | ${XML} | xpath=html/p | +| Element Text Should Match | ${paragraph} | Text with * and *. | normalize_whitespace=yes | + + + + + +source +xpath=. +encoding=None + +Returns the string representation of the specified element. + +The element to convert to a string is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. + +By default the string is returned as Unicode. If ``encoding`` argument +is given any value, the string is returned as bytes in the specified +encoding. The resulting string never contains the XML declaration. + +See also `Log Element` and `Save XML`. + + + + + +source +expected +exclude_children=False +normalize_whitespace=False + +Verifies that the given ``source`` element is equal to ``expected``. + +Both ``source`` and ``expected`` can be given as a path to an XML file, +as a string containing XML, or as an already parsed XML element +structure. See `introduction` for more information about parsing XML in +general. + +The keyword passes if the ``source`` element and ``expected`` element +are equal. This includes testing the tag names, texts, and attributes +of the elements. By default also child elements are verified the same +way, but this can be disabled by setting ``exclude_children`` to a +true value (see `Boolean arguments`). + +All texts inside the given elements are verified, but possible text +outside them is not. By default texts must match exactly, but setting +``normalize_whitespace`` to a true value makes text verification +independent on newlines, tabs, and the amount of spaces. For more +details about handling text see `Get Element Text` keyword and +discussion about elements' `text` and `tail` attributes in the +`introduction`. + +Examples using ``${XML}`` structure from `Example`: +| ${first} = | Get Element | ${XML} | first | +| Elements Should Be Equal | ${first} | <first id="1">text</first> | +| ${p} = | Get Element | ${XML} | html/p | +| Elements Should Be Equal | ${p} | <p>Text with <b>bold</b> and <i>italics</i>.</p> | normalize_whitespace=yes | +| Elements Should Be Equal | ${p} | <p>Text with</p> | exclude | normalize | + +The last example may look a bit strange because the ``<p>`` element +only has text ``Text with``. The reason is that rest of the text +inside ``<p>`` actually belongs to the child elements. This includes +the ``.`` at the end that is the `tail` text of the ``<i>`` element. + +See also `Elements Should Match`. + + + + + +source +expected +exclude_children=False +normalize_whitespace=False + +Verifies that the given ``source`` element matches ``expected``. + +This keyword works exactly like `Elements Should Be Equal` except that +texts and attribute values in the expected value can be given as +patterns. + +Pattern matching is similar as matching files in a shell with +``*``, ``?`` and ``[chars]`` acting as wildcards. See the +`Pattern matching` section for more information. + +Examples using ``${XML}`` structure from `Example`: +| ${first} = | Get Element | ${XML} | first | +| Elements Should Match | ${first} | <first id="?">*</first> | + +See `Elements Should Be Equal` for more examples. + + + + + +source +expression +context=. + +Evaluates the given xpath expression and returns results. + +The element in which context the expression is executed is specified +using ``source`` and ``context`` arguments. They have exactly the same +semantics as ``source`` and ``xpath`` arguments have with `Get Element` +keyword. + +The xpath expression to evaluate is given as ``expression`` argument. +The result of the evaluation is returned as-is. + +Examples using ``${XML}`` structure from `Example`: +| ${count} = | Evaluate Xpath | ${XML} | count(third/*) | +| Should Be Equal | ${count} | ${3} | +| ${text} = | Evaluate Xpath | ${XML} | string(descendant::second[last()]/@id) | +| Should Be Equal | ${text} | child | +| ${bold} = | Evaluate Xpath | ${XML} | boolean(preceding-sibling::*[1] = 'bold') | context=html/p/i | +| Should Be Equal | ${bold} | ${True} | + +This keyword works only if lxml mode is taken into use when `importing` +the library. + + + + + +source +xpath=. + +Returns the child elements of the specified element as a list. + +The element whose children to return is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. + +All the direct child elements of the specified element are returned. +If the element has no children, an empty list is returned. + +Examples using ``${XML}`` structure from `Example`: +| ${children} = | Get Child Elements | ${XML} | | +| Length Should Be | ${children} | 4 | | +| ${children} = | Get Child Elements | ${XML} | xpath=first | +| Should Be Empty | ${children} | | | + + + + + +source +xpath=. + +Returns an element in the ``source`` matching the ``xpath``. + +The ``source`` can be a path to an XML file, a string containing XML, or +an already parsed XML element. The ``xpath`` specifies which element to +find. See the `introduction` for more details about both the possible +sources and the supported xpath syntax. + +The keyword fails if more, or less, than one element matches the +``xpath``. Use `Get Elements` if you want all matching elements to be +returned. + +Examples using ``${XML}`` structure from `Example`: +| ${element} = | Get Element | ${XML} | second | +| ${child} = | Get Element | ${element} | child | + +`Parse XML` is recommended for parsing XML when the whole structure +is needed. It must be used if there is a need to configure how XML +namespaces are handled. + +Many other keywords use this keyword internally, and keywords modifying +XML are typically documented to both to modify the given source and +to return it. Modifying the source does not apply if the source is +given as a string. The XML structure parsed based on the string and +then modified is nevertheless returned. + + + + + +source +name +xpath=. +default=None + +Returns the named attribute of the specified element. + +The element whose attribute to return is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. + +The value of the attribute ``name`` of the specified element is returned. +If the element does not have such element, the ``default`` value is +returned instead. + +Examples using ``${XML}`` structure from `Example`: +| ${attribute} = | Get Element Attribute | ${XML} | id | xpath=first | +| Should Be Equal | ${attribute} | 1 | | | +| ${attribute} = | Get Element Attribute | ${XML} | xx | xpath=first | default=value | +| Should Be Equal | ${attribute} | value | | | + +See also `Get Element Attributes`, `Element Attribute Should Be`, +`Element Attribute Should Match` and `Element Should Not Have Attribute`. + + + + + +source +xpath=. + +Returns all attributes of the specified element. + +The element whose attributes to return is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. + +Attributes are returned as a Python dictionary. It is a copy of the +original attributes so modifying it has no effect on the XML structure. + +Examples using ``${XML}`` structure from `Example`: +| ${attributes} = | Get Element Attributes | ${XML} | first | +| Dictionary Should Contain Key | ${attributes} | id | | +| ${attributes} = | Get Element Attributes | ${XML} | third | +| Should Be Empty | ${attributes} | | | + +Use `Get Element Attribute` to get the value of a single attribute. + + + + + +source +xpath=. + +Returns and logs how many elements the given ``xpath`` matches. + +Arguments ``source`` and ``xpath`` have exactly the same semantics as +with `Get Elements` keyword that this keyword uses internally. + +See also `Element Should Exist` and `Element Should Not Exist`. + + + + + +source +xpath=. +normalize_whitespace=False + +Returns all text of the element, possibly whitespace normalized. + +The element whose text to return is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. + +This keyword returns all the text of the specified element, including +all the text its children and grandchildren contain. If the element +has no text, an empty string is returned. The returned text is thus not +always the same as the `text` attribute of the element. + +By default all whitespace, including newlines and indentation, inside +the element is returned as-is. If ``normalize_whitespace`` is given +a true value (see `Boolean arguments`), then leading and trailing +whitespace is stripped, newlines and tabs converted to spaces, and +multiple spaces collapsed into one. This is especially useful when +dealing with HTML data. + +Examples using ``${XML}`` structure from `Example`: +| ${text} = | Get Element Text | ${XML} | first | +| Should Be Equal | ${text} | text | | +| ${text} = | Get Element Text | ${XML} | second/child | +| Should Be Empty | ${text} | | | +| ${paragraph} = | Get Element | ${XML} | html/p | +| ${text} = | Get Element Text | ${paragraph} | normalize_whitespace=yes | +| Should Be Equal | ${text} | Text with bold and italics. | + +See also `Get Elements Texts`, `Element Text Should Be` and +`Element Text Should Match`. + + + + + +source +xpath + +Returns a list of elements in the ``source`` matching the ``xpath``. + +The ``source`` can be a path to an XML file, a string containing XML, or +an already parsed XML element. The ``xpath`` specifies which element to +find. See the `introduction` for more details. + +Elements matching the ``xpath`` are returned as a list. If no elements +match, an empty list is returned. Use `Get Element` if you want to get +exactly one match. + +Examples using ``${XML}`` structure from `Example`: +| ${children} = | Get Elements | ${XML} | third/child | +| Length Should Be | ${children} | 2 | | +| ${children} = | Get Elements | ${XML} | first/child | +| Should Be Empty | ${children} | | | + + + + + +source +xpath +normalize_whitespace=False + +Returns text of all elements matching ``xpath`` as a list. + +The elements whose text to return is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Elements` +keyword. + +The text of the matched elements is returned using the same logic +as with `Get Element Text`. This includes optional whitespace +normalization using the ``normalize_whitespace`` option. + +Examples using ``${XML}`` structure from `Example`: +| @{texts} = | Get Elements Texts | ${XML} | third/child | +| Length Should Be | ${texts} | 2 | | +| Should Be Equal | @{texts}[0] | more text | | +| Should Be Equal | @{texts}[1] | ${EMPTY} | | + + + + + +source +level=INFO +xpath=. + +Logs the string representation of the specified element. + +The element specified with ``source`` and ``xpath`` is first converted +into a string using `Element To String` keyword internally. The +resulting string is then logged using the given ``level``. + +The logged string is also returned. + + + + + +source +keep_clark_notation=False +strip_namespaces=False + +Parses the given XML file or string into an element structure. + +The ``source`` can either be a path to an XML file or a string +containing XML. In both cases the XML is parsed into ElementTree +[http://docs.python.org/library/xml.etree.elementtree.html#element-objects|element structure] +and the root element is returned. Possible comments and processing +instructions in the source XML are removed. + +As discussed in `Handling XML namespaces` section, this keyword, by +default, removes namespace information ElementTree has added to tag +names and moves it into ``xmlns`` attributes. This typically eases +handling XML documents with namespaces considerably. If you do not +want that to happen, or want to avoid the small overhead of going +through the element structure when your XML does not have namespaces, +you can disable this feature by giving ``keep_clark_notation`` argument +a true value (see `Boolean arguments`). + +If you want to strip namespace information altogether so that it is +not included even if XML is saved, you can give a true value to +``strip_namespaces`` argument. This functionality is new in Robot +Framework 3.0.2. + +Examples: +| ${root} = | Parse XML | <root><child/></root> | +| ${xml} = | Parse XML | ${CURDIR}/test.xml | keep_clark_notation=True | +| ${xml} = | Parse XML | ${CURDIR}/test.xml | strip_namespaces=True | + +Use `Get Element` keyword if you want to get a certain element and not +the whole structure. See `Parsing XML` section for more details and +examples. + + + + + +source +xpath= +remove_tail=False + +Removes the element matching ``xpath`` from the ``source`` structure. + +The element to remove from the ``source`` is specified with ``xpath`` +using the same semantics as with `Get Element` keyword. The resulting +XML structure is returned, and if the ``source`` is an already parsed +XML structure, it is also modified in place. + +The keyword fails if ``xpath`` does not match exactly one element. +Use `Remove Elements` to remove all matched elements. + +Element's tail text is not removed by default, but that can be changed +by giving ``remove_tail`` a true value (see `Boolean arguments`). See +`Element attributes` section for more information about `tail` in +general. + +Examples using ``${XML}`` structure from `Example`: +| Remove Element | ${XML} | xpath=second | +| Element Should Not Exist | ${XML} | xpath=second | +| Remove Element | ${XML} | xpath=html/p/b | remove_tail=yes | +| Element Text Should Be | ${XML} | Text with italics. | xpath=html/p | normalize_whitespace=yes | + + + + + +source +name +xpath=. + +Removes attribute ``name`` from the specified element. + +The element whose attribute to remove is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. The resulting XML structure is returned, and if the ``source`` +is an already parsed XML structure, it is also modified in place. + +It is not a failure to remove a non-existing attribute. Use `Remove +Element Attributes` to remove all attributes and `Set Element Attribute` +to set them. + +Examples using ``${XML}`` structure from `Example`: +| Remove Element Attribute | ${XML} | id | xpath=first | +| Element Should Not Have Attribute | ${XML} | id | xpath=first | + +Can only remove an attribute from a single element. Use `Remove Elements +Attribute` to remove an attribute of multiple elements in one call. + + + + + +source +xpath=. + +Removes all attributes from the specified element. + +The element whose attributes to remove is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. The resulting XML structure is returned, and if the ``source`` +is an already parsed XML structure, it is also modified in place. + +Use `Remove Element Attribute` to remove a single attribute and +`Set Element Attribute` to set them. + +Examples using ``${XML}`` structure from `Example`: +| Remove Element Attributes | ${XML} | xpath=first | +| Element Should Not Have Attribute | ${XML} | id | xpath=first | + +Can only remove attributes from a single element. Use `Remove Elements +Attributes` to remove all attributes of multiple elements in one call. + + + + + +source +xpath= +remove_tail=False + +Removes all elements matching ``xpath`` from the ``source`` structure. + +The elements to remove from the ``source`` are specified with ``xpath`` +using the same semantics as with `Get Elements` keyword. The resulting +XML structure is returned, and if the ``source`` is an already parsed +XML structure, it is also modified in place. + +It is not a failure if ``xpath`` matches no elements. Use `Remove +Element` to remove exactly one element. + +Element's tail text is not removed by default, but that can be changed +by using ``remove_tail`` argument similarly as with `Remove Element`. + +Examples using ``${XML}`` structure from `Example`: +| Remove Elements | ${XML} | xpath=*/child | +| Element Should Not Exist | ${XML} | xpath=second/child | +| Element Should Not Exist | ${XML} | xpath=third/child | + + + + + +source +name +xpath=. + +Removes attribute ``name`` from the specified elements. + +Like `Remove Element Attribute` but removes the attribute of all +elements matching the given ``xpath``. + + + + + +source +xpath=. + +Removes all attributes from the specified elements. + +Like `Remove Element Attributes` but removes all attributes of all +elements matching the given ``xpath``. + + + + + +source +path +encoding=UTF-8 + +Saves the given element to the specified file. + +The element to save is specified with ``source`` using the same +semantics as with `Get Element` keyword. + +The file where the element is saved is denoted with ``path`` and the +encoding to use with ``encoding``. The resulting file always contains +the XML declaration. + +The resulting XML file may not be exactly the same as the original: +- Comments and processing instructions are always stripped. +- Possible doctype and namespace prefixes are only preserved when + `using lxml`. +- Other small differences are possible depending on the ElementTree + or lxml version. + +Use `Element To String` if you just need a string representation of +the element. + + + + + +source +name +value +xpath=. + +Sets attribute ``name`` of the specified element to ``value``. + +The element whose attribute to set is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. The resulting XML structure is returned, and if the ``source`` +is an already parsed XML structure, it is also modified in place. + +It is possible to both set new attributes and to overwrite existing. +Use `Remove Element Attribute` or `Remove Element Attributes` for +removing them. + +Examples using ``${XML}`` structure from `Example`: +| Set Element Attribute | ${XML} | attr | value | +| Element Attribute Should Be | ${XML} | attr | value | +| Set Element Attribute | ${XML} | id | new | xpath=first | +| Element Attribute Should Be | ${XML} | id | new | xpath=first | + +Can only set an attribute of a single element. Use `Set Elements +Attribute` to set an attribute of multiple elements in one call. + + + + + +source +tag +xpath=. + +Sets the tag of the specified element. + +The element whose tag to set is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. The resulting XML structure is returned, and if the ``source`` +is an already parsed XML structure, it is also modified in place. + +Examples using ``${XML}`` structure from `Example`: +| Set Element Tag | ${XML} | newTag | +| Should Be Equal | ${XML.tag} | newTag | +| Set Element Tag | ${XML} | xxx | xpath=second/child | +| Element Should Exist | ${XML} | second/xxx | +| Element Should Not Exist | ${XML} | second/child | + +Can only set the tag of a single element. Use `Set Elements Tag` to set +the tag of multiple elements in one call. + + + + + +source +text=None +tail=None +xpath=. + +Sets text and/or tail text of the specified element. + +The element whose text to set is specified using ``source`` and +``xpath``. They have exactly the same semantics as with `Get Element` +keyword. The resulting XML structure is returned, and if the ``source`` +is an already parsed XML structure, it is also modified in place. + +Element's text and tail text are changed only if new ``text`` and/or +``tail`` values are given. See `Element attributes` section for more +information about `text` and `tail` in general. + +Examples using ``${XML}`` structure from `Example`: +| Set Element Text | ${XML} | new text | xpath=first | +| Element Text Should Be | ${XML} | new text | xpath=first | +| Set Element Text | ${XML} | tail=& | xpath=html/p/b | +| Element Text Should Be | ${XML} | Text with bold&italics. | xpath=html/p | normalize_whitespace=yes | +| Set Element Text | ${XML} | slanted | !! | xpath=html/p/i | +| Element Text Should Be | ${XML} | Text with bold&slanted!! | xpath=html/p | normalize_whitespace=yes | + +Can only set the text/tail of a single element. Use `Set Elements Text` +to set the text/tail of multiple elements in one call. + + + + + +source +name +value +xpath=. + +Sets attribute ``name`` of the specified elements to ``value``. + +Like `Set Element Attribute` but sets the attribute of all elements +matching the given ``xpath``. + + + + + +source +tag +xpath=. + +Sets the tag of the specified elements. + +Like `Set Element Tag` but sets the tag of all elements matching +the given ``xpath``. + + + + + +source +text=None +tail=None +xpath=. + +Sets text and/or tail text of the specified elements. + +Like `Set Element Text` but sets the text or tail of all elements +matching the given ``xpath``. + + + + -- GitLab From 4dc140a19b0519f88accb9e140f9057a06336c94 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 28 Jul 2020 10:27:11 +0500 Subject: [PATCH 025/116] Added Test Cases for IndiviualPmJob.robot --- .../IndividualPmJob.robot | 204 ++++++++++++++++++ .../environment/IndividualPmJob.txt | 6 + libspecs/Easter.libspec | 2 +- libspecs/Reserved.libspec | 2 +- 4 files changed, 212 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/IndividualPmJob.txt diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot new file mode 100644 index 000000000..0d4415b42 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot @@ -0,0 +1,204 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Library JSONLibrary +Resource environment/IndividualPmJob.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false + +*** Test Cases *** +GET individual NFV-MANO Performance Job + [Documentation] Test ID: 8.3.2.2.1 + ... Test title: Get individual NFV-MANO Performance Job + ... Test objective: The objective is to test the retrieval of an individual performance monitoring job and perform a JSON schema and content validation of the collected job data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. + ... Reference: clause 6.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJob + Check HTTP Response Body Pm Job Identifier matches the requested Pm Job + +GET individual NFV-MANO Performance Job with invalid resource identifier + [Documentation] Test ID: 8.3.2.2.2 + ... Test title: Get individual NFV-MANO Performance Job with invalid resource identifier + ... Test objective: The objective is to test that the retrieval of an individual performance monitoring job fails when using an invalid resource identifier, and perform the JSON schema validation of the failed operation HTTP response + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual NFV-MANO Performance Job with invalid resource identifier + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails + +DELETE Individual NFV-MANO Performance Job + [Documentation] Test ID: 8.3.2.2.3 + ... Test title: Delete Individual NFV-MANO Performance Job + ... Test objective: The objective is to test the deletion of an individual performance monitoring job + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is no more available. + Send Delete request for individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 204 + Check Postcondition NFV-MANO Pm Job is Deleted + +DELETE Individual NFV-MANO Performance Job with invalid resource identifier + [Documentation] Test ID: 8.3.2.2.4 + ... Test title: Delete individual NFV-MANO Performance Job with invalid resource identifier + ... Test objective: The objective is to test that the deletion of an individual NFV-MANO performance monitoring job fails when using an invalid resource identifier + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual NFV-MANO Performance Job with invalid resource identifier + Check HTTP Response Status Code Is 404 + +POST Individual NFV-MANO Performance Job - Method not implemented + [Documentation] Test ID: 8.3.2.2.5 + ... Test title: POST Individual NFV-MANO Performance Job - method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO Performance Monitoring Job + ... Pre-conditions: A NFV-MANO instance is instantiated + ... Reference: clause 6.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is not created on the NFV-MANO + Send Post request for individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Performance Job is not Created + +PUT Individual NFV-MANO Performance Job - Method not implemented + [Documentation] Test ID: 8.3.2.2.6 + ... Test title: PUT Individual NFV-MANO Performance Job - method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update an existing NFV-MANO Performance Monitoring Job + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is not modified by the operation + Send Put request for individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) + +PATCH Individual NFV-MANO Performance Job - Method not implemented + [Documentation] Test ID: 8.3.2.2.7 + ... Test title: PATCH Individual NFV-MANO Performance Job - method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new NFV-MANO Performance Monitoring Job + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is not modified by the operation + Send Patch request for individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) + +*** Keywords *** +GET individual NFV-MANO Performance Job + Log Trying to get a Pm Job + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET individual NFV-MANO Performance Job with invalid resource identifier + Log Trying to perform a negative get, using erroneous PM Job identifier + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${erroneousPmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for individual NFV-MANO Performance Job + Log Trying to delete an existing PM Job + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for individual NFV-MANO Performance Job with invalid resource identifier + Log Trying to perform a negative delete, using erroneous PM Job identifier + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${erroneousPmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post request for individual NFV-MANO Performance Job + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${newPmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Put request for individual NFV-MANO Performance Job + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch request for individual NFV-MANO Performance Job + Log Trying to perform a PATCH (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition NFV-MANO Performance Job is not Created + Log Trying to get a new Pm Job + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${newPmJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 404 + +Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) + Log Check Postcondition NFV-MANO PM job is not modified + GET individual NFV-MANO Performance Job + Log Check Response matches original NFV-MANO Pm Job + ${pmJob}= evaluate json.loads('''${response['body']}''') json + Should Be Equal ${origresponse['body']['id']} ${pmJob.id} + Should Be Equal ${origresponse['body']['criteria']} ${pmJob.criteria} + Should Be Equal ${origresponse['body']['_links']} ${pmJob._links} + +Check Postcondition NFV-MANO Pm Job is Deleted + Log Check Postcondition + GET individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 404 + +Check HTTP Response Body Pm Job Identifier matches the requested Pm Job + Log Going to validate Pm Job info retrieved + Should Be Equal ${response['body']['id']} ${pmJobId} + Log Pm Job identifier as expected + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/IndividualPmJob.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/IndividualPmJob.txt new file mode 100644 index 000000000..b3616b30f --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/IndividualPmJob.txt @@ -0,0 +1,6 @@ +*** Variables *** +${pmJobId} 29f4ff6a-be91-4ec8-856e-fcf1e2479e4e +${erroneousPmJobId} erroneousPmJobId +${newPmJobId} newPmJobId +${response}= httpresponse +${OrigResponse}= httpresponse \ No newline at end of file diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec index 90df83ed3..7df17c107 100644 --- a/libspecs/Easter.libspec +++ b/libspecs/Easter.libspec @@ -1,5 +1,5 @@ - + global yes diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec index b093decf0..1ca259b8d 100644 --- a/libspecs/Reserved.libspec +++ b/libspecs/Reserved.libspec @@ -1,5 +1,5 @@ - + global yes -- GitLab From c6ef32568472a16a7484a403251714c5f24fbc2b Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 28 Jul 2020 12:01:53 +0500 Subject: [PATCH 026/116] Added Test Cases for IndiviualReport.robot --- .../IndividualReport.robot | 174 ++++++++++++++++++ .../environment/reports.txt | 7 + 2 files changed, 181 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/reports.txt diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot new file mode 100644 index 000000000..d0c7d0234 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot @@ -0,0 +1,174 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Resource environment/reports.txt +Library JSONLibrary +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false + +*** Test Cases *** +Get Individual Performance Report + [Documentation] Test ID: 8.3.2.3.1 + ... Test title: Get Individual Performance Report + ... Test objective: The objective is to test the retrieval of an individual performance report associated to a monitoring job and perform a JSON schema validation of the collected report data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. + ... Reference: clause 6.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Performance Report + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PerformanceReport + +Get Individual Performance Report with invalid resource endpoint + [Documentation] Test ID: 8.3.2.3.2 + ... Test title: Get Individual Performance Report with invalid resource endpoint + ... Test objective: The objective is to test that the retrieval of an individual NFV-MANO performance report associated to a monitoring job fails when using an invalid resource endpoint. + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. + ... Reference: clause 6.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Performance Report with invalid resource endpoint + Check HTTP Response Status Code Is 404 + +POST Individual Performance Report - Method not implemented + [Documentation] Test ID: 8.3.2.3.3 + ... Test title: POST Individual Performance Report - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO performance report within a monitoring job. + ... Pre-conditions: A NFV-MANO instance is instantiated. + ... Reference: clause 6.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO performance report is not created. + Send Post request for Individual Performance Report + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Individual Performance Report is not Created + +PUT Individual Performance Report - Method not implemented + [Documentation] Test ID: 8.3.2.3.4 + ... Test title: PUT Individual Performance Report - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update an existing NFV-MANO performance report within a monitoring job. + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. + ... Reference: clause 6.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO performance report is not modified by the operation + Send Put request for Individual Performance Report + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Individual Performance Report is Unmodified (Implicit) + +PATCH Individual Performance Report - Method not implemented + [Documentation] Test ID: 8.3.2.3.5 + ... Test title: PATCH Individual Performance Report - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing NFV-MANO performance report within a monitoring job. + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. + ... Reference: clause 6.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO performance report is not modified by the operation + Send Patch request for Individual Performance Report + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Individual Performance Report is Unmodified (Implicit) + +DELETE Individual Performance Report - Method not implemented + [Documentation] Test ID: 8.3.2.3.6 + ... Test title: DELETE Individual Performance Report - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to delete an existing NFV-MANO performance report within a monitoring job + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job in the NFV-MANOM. + ... Reference: clause 6.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANOM + ... Applicability: none + ... Post-Conditions: The NFV-MANO performance report is not deleted by the operation + Send Delete request for Individual Performance Report + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Individual Performance Report Exists + +*** Keywords *** +Get Individual Performance Report + Log Trying to get a performance report present in the NFV-MANOM + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Individual Performance Report with invalid resource endpoint + Log Trying to get a performance report with invalid resource endpoint + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${erroneousReportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post request for Individual Performance Report + Log Trying to create new performance report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${newReportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Put request for Individual Performance Report + Log Trying to update performance report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch request for Individual Performance Report + Log Trying to update performance report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for Individual Performance Report + Log Trying to delete performance report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition NFV-MANO Individual Performance Report Exists + Log Checking that report still exists + Get Individual Performance Report + +Check Postcondition NFV-MANO Individual Performance Report is not Created + Log Trying to get a new report + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${newReportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 404 + +Check Postcondition NFV-MANO Individual Performance Report is Unmodified (Implicit) + Log Check Postcondition NFV-MANO PM job is not modified + Get Individual Performance Report + Log Check Response matches original NFV-MANO report + ${report}= evaluate json.loads('''${response['body']}''') json + Should Be Equal ${origResponse['body']['entries'][0]['objectInstanceId']} ${report['entries'][0]['objectInstanceId']} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/reports.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/reports.txt new file mode 100644 index 000000000..6ac5f7c0b --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/reports.txt @@ -0,0 +1,7 @@ +*** Variables *** +${pmJobId} 1f50d68b-82e8-4deb-bd40-c934d4d1ac0a +${reportId} 0fb4c875-e07f-46ca-a9dd-13907667a568 +${erroneousReportId} erroneousReportId +${newReportId} newReportId +${response}= httpresponse +${OrigResponse}= httpresponse -- GitLab From 1c9dc67081a10212afdcc41e7ea670ca0a49fa71 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 28 Jul 2020 12:09:13 +0500 Subject: [PATCH 027/116] Added Schema file PerformanceReport --- .../schemas/PerformanceReport.schema.json | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceReport.schema.json diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceReport.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceReport.schema.json new file mode 100644 index 000000000..9ca35fcfa --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceReport.schema.json @@ -0,0 +1,92 @@ +{ + "description": "This type defines the format of a performance report provided by the NFV-MANO functional entity to the API consumer as a result of collecting performance information as part of a PM job. \n", + "type": "object", + "properties": { + "entries": { + "description": "List of performance information entries. Each performance report entry is for a given metric of a given object (i.e. measured object instance) corresponding to the related measured object types, but can include multiple collected values.\n", + "type": "array", + "items": { + "type": "object", + "properties": { + "objectType": { + "description": "Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031.\n", + "type": "string" + }, + "objectInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "subObjectInstanceId": { + "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" + }, + "performanceMetric": { + "description": "Name of the metric collected. This attribute shall contain the related \"Measurement Name\" value as defined in clause 8.4 of ETSI GS NFV-IFA 031.\n", + "type": "string" + }, + "performanceValues": { + "description": "List of performance values with associated timestamp.\n", + "type": "array", + "items": { + "type": "object", + "properties": { + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "value": { + "description": "Value of the metric collected. The type of this attribute shall correspond to the related \"Measurement Unit\" as defined in clause 8.4 of ETSI GS NFV-IFA 031.\n" + }, + "context": { + "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" + } + }, + "required": [ + "timeStamp", + "value" + ] + }, + "minItems": 1 + } + }, + "required": [ + "objectType", + "objectInstanceId", + "performanceMetric", + "performanceValues" + ] + }, + "minItems": 1 + } + }, + "required": [ + "entries" + ] + } \ No newline at end of file -- GitLab From 78c05037d316d59c2a2b1d93f77c07cdc4123335 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 28 Jul 2020 19:24:49 +0500 Subject: [PATCH 028/116] Added Test Cases for Thresholds.robot --- .../Thresholds.robot | 229 ++++++++++++++++++ .../environment/thresholds.txt | 4 + .../jsons/CreateThresholdRequest.json | 13 + 3 files changed, 246 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/thresholds.txt create mode 100644 SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json diff --git a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot new file mode 100644 index 000000000..815bad6c4 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot @@ -0,0 +1,229 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Library JSONLibrary +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Resource environment/thresholds.txt +Library OperatingSystem + +*** Test Cases *** +GET All Performance Thresholds + [Documentation] Test ID: 8.3.2.4.1 + ... Test title: GET All Performance Thresholds + ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance thresholds and perform a JSON schema validation of the collected thresholds data structure. + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET all Performance Thresholds + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Thresholds + +GET Performance Thresholds with attribute-based filter + [Documentation] Test ID: 8.3.2.4.2 + ... Test title: GET Performance Thresholds with attribute-based filter + ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance thresholds when using attribute-based filters, perform a JSON schema validation of the collected thresholds data structure, and verify that the retrieved information matches the issued attribute-based filter + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Performance Thresholds with attribute-based filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Thresholds + Check HTTP Response Body Thresholds match the requested attribute-based filter + +GET Performance Threshold with Paged Response + [Documentation] Test ID: 8.3.2.4.3 + ... Test title: GET Performance Threshold with Paged Response + ... Test objective: The objective is to query information about NFV-MANO Performance Thresholds to get Paged Response. + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_VNFM + ... Applicability: + ... Post-Conditions: + GET all Performance Thresholds + Check HTTP Response Status Code Is 200 + Check LINK in Header + +GET Performance Thresholds - Invalid attribute-based filter + [Documentation] Test ID: 8.3.2.4.4 + ... Test title: GET Performance Thresholds - Invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of NFV-MANO performance thresholds fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Performance Thresholds with invalid attribute-based filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Performance Threshold - Bad Request Response too Big + [Documentation] Test ID: 8.3.2.4.5 + ... Test title: GET Performance Threshold - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of NFV-MANO performance thresholds fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_VNFM + ... Applicability: + ... Post-Conditions: + GET all Performance Thresholds + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +Create new Performance Threshold + [Documentation] Test ID: 8.3.2.4.6 + ... Test title: Create new Performance Threshold + ... Test objective: The objective is to test the creation of a new NFV-MANO performance threshold and perform the JSON schema validation of the returned threshold data structure. + ... Pre-conditions: A NFV-MANO instance is instantiated. + ... Reference: clause 6.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Threshold is successfully created on the NFV-MANO + Send Post Request Create new Performance Threshold + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is Threshold + Check HTTP Response Header Contains Location + Check Postcondition Threshold Exists + +PUT Performance Thresholds - Method not implemented + [Documentation] Test ID: 8.3.2.4.6 + ... Test title: PUT Performance Thresholds - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Thresholds + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. + ... Reference: clause 6.5.6.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send PUT Request for all Performance Thresholds + Check HTTP Response Status Code Is 405 + +PATCH Performance Thresholds - Method not implemented + [Documentation] Test ID: 8.3.2.4.7 + ... Test title: PATCH Performance Thresholds - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify NFV-MANO Performance Thresholds + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. + ... Reference: clause 6.5.6.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send PATCH Request for all Performance Thresholds + Check HTTP Response Status Code Is 405 + +DELETE Performance Thresholds - Method not implemented + [Documentation] Test ID: 8.3.2.4.8 + ... Test title: DELETE Performance Thresholds - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Thresholds + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. + ... Reference: clause 6.5.6.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO performance thresholds are not deleted by the failed operation + Send DELETE Request for all Performance Thresholds + Check HTTP Response Status Code Is 405 + Check Postcondition Thresholds Exist + +*** Keywords *** +GET all Performance Thresholds + Log Trying to get all thresholds present in the NFV-MANO + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Performance Thresholds with attribute-based filter + Log Trying to get thresholds present in the NFV-MANO with filter + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds?${FILTER_OK} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Performance Thresholds with invalid attribute-based filter + Log Trying to get thresholds present in the NFV-MANO with invalid filter + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds?${FILTER_KO} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post Request Create new Performance Threshold + Log Creating a new THreshold + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + ${request}= Get File jsons/CreateThresholdRequest.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds ${request} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PUT Request for all Performance Thresholds + Log PUT THresholds + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PATCH Request for all Performance Thresholds + Log PUT THresholds + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send DELETE Request for all Performance Thresholds + Log DELETE THresholds + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Thresholds Exist + Log Checking that Thresholds still exists + GET all Performance Thresholds + +Check Postcondition Threshold Exists + Log Checking that Threshold exists + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${response['body']['id']} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Threshold + +Check HTTP Response Body Thresholds match the requested attribute-based filter + Log Checking that attribute-based filter is matched + #todo + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + +Check LINK in Header + ${linkURL}= Get Value From Json ${response['headers']} $..Link + Should Not Be Empty ${linkURL} + + + diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/thresholds.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/thresholds.txt new file mode 100644 index 000000000..a2b025eef --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/thresholds.txt @@ -0,0 +1,4 @@ +*** Variables *** +${FILTER_OK} objectInstanceId=1f50d68b-82e8-4deb-bd40-c934d4d1ac0a +${FILTER_KO} criterias=erroneousFilter +${response}= httpresponse \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json new file mode 100644 index 000000000..3bcd017e9 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json @@ -0,0 +1,13 @@ +{ + "objectType":"", + "objectInstanceIds" : "", + "criteria" : { + "performanceMetric": "cpu_util", + "thresholdType": "SIMPLE", + "simpleThresholdDetails": { + "thresholdValue": 10, + "hysteresis": 50 + } + + } +} \ No newline at end of file -- GitLab From 65c68d067d36f7c69a1e161972ca9f95d14db7f1 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 29 Jul 2020 09:15:22 +0500 Subject: [PATCH 029/116] Schemas Added --- .../schemas/Threshold.schema.json | 108 +++++++++++++++++ .../schemas/Thresholds.schema.json | 111 ++++++++++++++++++ .../schemas/criteria.schema.json | 34 ++++++ .../schemas/links.schema.json | 35 ++++++ 4 files changed, 288 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/Threshold.schema.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/Thresholds.schema.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/criteria.schema.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/links.schema.json diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/Threshold.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/Threshold.schema.json new file mode 100644 index 000000000..024546173 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/Threshold.schema.json @@ -0,0 +1,108 @@ +{ + "description": "", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "objectType": { + "description": "Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031.", + "type": "string" + }, + "objectInstanceId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subjObjectInstanceIds": { + "description": "Identifiers of the sub-object instances of the measured object instance associated with this threshold. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, thresholds are set for all sub-object instances of the measured object instance.\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" + } + }, + "criteria": { + "description": "This type represents criteria that define a threshold.\n", + "type": "object", + "properties": { + "performanceMetric": { + "description": "Defines the performance metric associated with the threshold. This attribute’s value shall contain the related \"Measurement Name\" values as defined in clause 8.4 of ETSI GS NFV-IFA 031 \n", + "type": "string" + }, + "thresholdType": { + "description": "Type of threshold. This attribute determines which other attributes are present in the data structure. Permitted values:\n - SIMPLE: Single-valued static threshold\n\nIn the present document, simple thresholds are defined. The definition of additional threshold types is left for future specification.\n", + "type": "string", + "enum": [ + "SIMPLE" + ] + }, + "simpleThresholdDetails": { + "description": "Details of a simple threshold. Shall be present if thresholdType=\"SIMPLE\".\n", + "type": "object", + "properties": { + "thresholdValue": { + "description": "A number defined in IETF RFC 8259.\n", + "type": "number" + }, + "hysteresis": { + "description": "A number defined in IETF RFC 8259.\n", + "type": "number" + } + }, + "required": [ + "thresholdValue", + "hysteresis" + ] + } + }, + "required": [ + "performanceMetric", + "thresholdType" + ] + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "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" + } + } + }, + "object": { + "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" + } + } + } + }, + "required": [ + "self" + ] + } + }, + "required": [ + "id", + "objectType", + "objectInstanceId", + "subjObjectInstanceIds", + "criteria", + "_links" + ] + } \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/Thresholds.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/Thresholds.schema.json new file mode 100644 index 000000000..4b1ce8981 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/Thresholds.schema.json @@ -0,0 +1,111 @@ +{ + "type": "array", + "items": { + "description": "", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "objectType": { + "description": "Type of measured object. The applicable measured object type for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031.", + "type": "string" + }, + "objectInstanceId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subjObjectInstanceIds": { + "description": "Identifiers of the sub-object instances of the measured object instance associated with this threshold. May be present if a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type. If this attribute is absent and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related measured object type, thresholds are set for all sub-object instances of the measured object instance.\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" + } + }, + "criteria": { + "description": "This type represents criteria that define a threshold.\n", + "type": "object", + "properties": { + "performanceMetric": { + "description": "Defines the performance metric associated with the threshold. This attribute’s value shall contain the related \"Measurement Name\" values as defined in clause 8.4 of ETSI GS NFV-IFA 031 \n", + "type": "string" + }, + "thresholdType": { + "description": "Type of threshold. This attribute determines which other attributes are present in the data structure. Permitted values:\n - SIMPLE: Single-valued static threshold\n\nIn the present document, simple thresholds are defined. The definition of additional threshold types is left for future specification.\n", + "type": "string", + "enum": [ + "SIMPLE" + ] + }, + "simpleThresholdDetails": { + "description": "Details of a simple threshold. Shall be present if thresholdType=\"SIMPLE\".\n", + "type": "object", + "properties": { + "thresholdValue": { + "description": "A number defined in IETF RFC 8259.\n", + "type": "number" + }, + "hysteresis": { + "description": "A number defined in IETF RFC 8259.\n", + "type": "number" + } + }, + "required": [ + "thresholdValue", + "hysteresis" + ] + } + }, + "required": [ + "performanceMetric", + "thresholdType" + ] + }, + "_links": { + "description": "Links for this resource.\n", + "type": "object", + "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" + } + } + }, + "object": { + "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" + } + } + } + }, + "required": [ + "self" + ] + } + }, + "required": [ + "id", + "objectType", + "objectInstanceId", + "subjObjectInstanceIds", + "criteria", + "_links" + ] + } +} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/criteria.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/criteria.schema.json new file mode 100644 index 000000000..319d15f53 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/criteria.schema.json @@ -0,0 +1,34 @@ +{ + "description": "Criteria of the collection of performance information.\n", + "type": "object", + "required": ["collectionPeriod", "reportingPeriod"], + "properties": { + "performanceMetric": { + "description": "This defines the types of performance metrics for the specified object instances, as specified in ETSI GS NFV-IFA 027). At least one of the two attributes (performance metric or group) shall be present.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "performanceMetricGroup": { + "description": "Group of performance metrics. A metric group is a pre-defined list of metrics, known to the producer that it can decompose to individual metrics. At least one of the two attributes (performance metric or group) shall be present.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "collectionPeriod": { + "description": "Specifies the periodicity at which the producer will collect performance information. The unit shall be seconds. At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together.\n", + "type": "integer" + }, + "reportingPeriod": { + "description": "Specifies the periodicity at which the producer will report to the consumer. about performance information. The unit shall be seconds. At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together.\n", + "type": "integer" + }, + "reportingBoundary": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + } + } +} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/links.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/links.schema.json new file mode 100644 index 000000000..ef262a8c8 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/links.schema.json @@ -0,0 +1,35 @@ +{ + "description": "Links for 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" + } + } + }, + "objects": { + "description": "Links to resources representing the VNF instances for which performance information is collected. Shall be present if the VNF instance information is accessible as a resource.\n", + "type": "array", + "items": { + "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 From 36314c678970915b7fe5159462119c2706ce80d0 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 29 Jul 2020 10:01:10 +0500 Subject: [PATCH 030/116] Added Test Cases for individualThresholds.robot --- .../IndividualThreshold.robot | 203 ++++++++++++++++++ .../environment/individualThresholds.txt | 6 + 2 files changed, 209 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/individualThresholds.txt diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot new file mode 100644 index 000000000..a228d9a17 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot @@ -0,0 +1,203 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Library JSONLibrary +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Resource environment/individualThresholds.txt + +*** Test Cases *** +GET Individual Threshold + [Documentation] Test ID: 8.3.2.5.1 + ... Test title: GET Individual Threshold + ... Test objective: The objective is to test the retrieval of an individual NFV-MANO performance threshold and perform a JSON schema and content validation of the collected threshold data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. + ... Reference: clause 6.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual Performance Threshold + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is Threshold + Check HTTP Response Body Threshold Identifier matches the requested Threshold + +GET Individual Threshold with invalid resource identifier + [Documentation] Test ID: 8.3.2.5.2 + ... Test title: GET Individual Threshold with invalid resource identifier + ... Test objective: The objective is to test that the retrieval of an individual performance threshold fails when using an invalid resource identifier + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance jobs are set. + ... Reference: clause 6.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual Performance Threshold with invalid resource identifier + Check HTTP Response Status Code Is 404 + +DELETE Individual Threshold + [Documentation] Test ID: 8.3.2.5.3 + ... Test title: DELETE Individual Threshold + ... Test objective: The objective is to test the deletion of an individual performance threshold + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. + ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Threshold is not available anymore in the NFV-MANO + Send Delete request for individual Performance Threshold + Check HTTP Response Status Code Is 204 + Check Postcondition Performance Threshold is Deleted + +DELETE Individual Threshold with invalid resource identifier + [Documentation] Test ID: 8.3.2.5.4 + ... Test title: DELETE Individual Threshold with invalid resource identifier + ... Test objective: The objective is to test the deletion of an individual performance threshold + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. + ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual Performance Threshold with invalid resource identifier + Check HTTP Response Status Code Is 404 + +POST Individual Threshold - Method not implemented + [Documentation] Test ID: 8.3.2.5.5 + ... Test title: POST Individual Threshold - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Threshold + ... Pre-conditions: A NFV-MANO instance is instantiated + ... Reference: clause 6.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Threshold is not created on the NFV-MANO + Send Post request for individual Performance Threshold + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Threshold is not Created + +PUT Individual Threshold - Method not implemented + [Documentation] Test ID: 8.3.2.5.6 + ... Test title: PUT Individual Threshold - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update an existing Performance threshold + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. + ... Reference: clause 6.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Threshold is not modified by the operation + Send Put request for individual Performance Threshold + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Threshold is Unmodified (Implicit) + +PATCH Individual Threshold - Method not implemented + [Documentation] Test ID: 8.3.2.5.7 + ... Test title: PATCH Individual Threshold - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing Performance threshold + ... Pre-conditions: A instance is instantiated. One or more performance thresholds are set. + ... Reference: clause 6.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Threshold is not modified by the operation + Send Patch request for individual Performance Threshold + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Threshold is Unmodified (Implicit) + +*** Keywords *** +GET Individual Performance Threshold + Log Trying to get a Threhsold present in the NFV-MANO + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${thresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +GET individual Performance Threshold with invalid resource identifier + Log Trying to get a Threhsold with invalid resource endpoint + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${erroneousThresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Delete request for individual Performance Threshold + Log Trying to delete a Threhsold in the NFV-MANO + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${thresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Delete request for individual Performance Threshold with invalid resource identifier + Log Trying to delete a Threhsold in the NFV-MANO with invalid id + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${erroneousThresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Post request for individual Performance Threshold + Log Trying to create new threshold + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${newThresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Put request for individual Performance Threshold + Log Trying to PUT threshold + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${thresholdId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${thresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Patch request for individual Performance Threshold + Log Trying to PUT threshold + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${thresholdId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${thresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Check Postcondition Performance Threshold is Unmodified (Implicit) + Log Check postconidtion threshold not modified + GET individual Performance Threshold + Log Check Response matches original Threshold + ${threshold}= evaluate json.loads('''${response['body']}''') json + Should Be Equal ${origresponse['body']['id']} ${threshold.id} + Should Be Equal ${origresponse['body']['criteria']} ${threshold.criteria} + +Check Postcondition Performance Threshold is not Created + Log Trying to get a new Threshold + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${newThresholdId} + ${output}= Output response + Set Suite Variable @{response} ${output} + Check HTTP Response Status Code Is 404 + +Check Postcondition Performance Threshold is Deleted + Log Check Postcondition Threshold is deleted + GET individual Performance Threshold + Check HTTP Response Status Code Is 404 + +Check HTTP Response Body Threshold Identifier matches the requested Threshold + Log Trying to check response ID + Should Be Equal ${response['body']['id']} ${thresholdId} + Log Pm Job identifier as expected + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/individualThresholds.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/individualThresholds.txt new file mode 100644 index 000000000..1efba79c6 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/individualThresholds.txt @@ -0,0 +1,6 @@ +*** Variables *** +${thresholdId} 1f50d68b-82e8-4deb-bd40-c934d4d1ac0a +${erroneousThresholdId} erroneousThresholdId +${newThresholdId} newThresholdId +${response}= httpresponse +${origResponse}= httpresponse \ No newline at end of file -- GitLab From 080f53ed701aad6df052a41c8b0bf88d626d007d Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 29 Jul 2020 14:08:37 +0500 Subject: [PATCH 031/116] Added Test Cases for Subscriptions.robot --- .../Subscriptions.robot | 324 ++++++++++++++++++ .../environment/subscriptions.txt | 7 + .../environment/variables.txt | 4 +- .../jsons/subscriptions.json | 6 + 4 files changed, 340 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/subscriptions.txt create mode 100644 SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json diff --git a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot new file mode 100644 index 000000000..14b2ffd39 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot @@ -0,0 +1,324 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Resource environment/subscriptions.txt +Library MockServerLibrary +Library Process +Suite Setup Create Sessions +Suite Teardown Terminate All Processes kill=true + +*** Test Cases *** +GET all Performance Subscriptions + [Documentation] Test ID: 8.3.2.6.1 + ... Test title: GET all Performance Subscriptions + ... Test objective: The objective is to test the retrieval of all performance subscriptions and perform a JSON schema validation of the returned subscriptions data structure. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Performance Subscriptions + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmSubscriptions + +GET Performance Subscriptions with attribute-based filter + [Documentation] Test ID: 8.3.2.6.2 + ... Test title: GET Performance Subscriptions with attribute-based filter + ... Test objective: The objective is to test the retrieval of performance subscriptions using attribute-based filter, perform a JSON schema validation of the collected indicators data structure. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Performance Subscriptions with attribute-based filters + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmSubscriptions + +GET Performance Management Subscriptions with Paged Response + [Documentation] Test ID: 8.3.2.6.3 + ... Test title: GET Performance Management Subscriptions with Paged Response + ... Test objective: The objective is to query information about NFV-MANO Performance Subscriptions to get Paged Response. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. + ... Reference: clauseclause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get all Performance Subscriptions + Check HTTP Response Status Code Is 200 + Check LINK in Header + +GET Performance Subscriptions with invalid attribute-based filter + [Documentation] Test ID: 8.3.2.6.4 + ... Test title: GET Performance Subscriptions with invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of performance subscriptions fails when using invalid attribute-based filters, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Performance Subscriptions with invalid attribute-based filters + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Performance Subscriptions - Bad Request Response too Big + [Documentation] Test ID: 8.3.2.6.5 + ... Test title: GET Performance Subscriptions - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of NFV-MANO performance subscriptions fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get all Performance Subscriptions + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Performance Subscriptions with invalid resource endpoint + [Documentation] Test ID: 8.3.2.6.6 + ... Test title: GET Performance Subscriptions with invalid resource endpoint + ... Test objective: The objective is to test that the retrieval of all performance subscriptions fails when using invalid resource endpoint. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Performance Subscriptions with invalid resource endpoint + Check HTTP Response Status Code Is 404 + +Create new Performance subscription + [Documentation] Test ID 8.3.2.6.7 + ... Test title: Create new Performance subscription + ... Test objective: The objective is to test the creation of a new performance subscription and perform a JSON schema and content validation of the returned subscription data structure. + ... Pre-conditions: An instance is instantiated. + ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The performance subscription is successfully set and it matches the issued subscription. + Send Post Request for Performance Subscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PmSubscription + Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription + Check Postcondition Performance Subscription Is Set + + +Create duplicated Performance subscription with NFV-MANO not creating duplicated subscriptions + [Tags] no-duplicated-subs + [Documentation] Test ID 8.3.2.6.8 + ... Test title: Create duplicated Performance subscription with NFV-MANO not creating duplicated subscriptions + ... Test objective: The objective is to test the attempt of a creation of a duplicated performance subscription and check that no new subscription is created by the NFV-MANO and a link to the original subscription is returned + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO does not support the creation of duplicated subscriptions + ... Post-Conditions: The existing performance subscription returned is available in the NFV-MANO + Send Post Request for Duplicated Performance Subscription + Check HTTP Response Status Code Is 303 + Check HTTP Response Body Is Empty + Check HTTP Response Header Contains Location + Check Postcondition Subscription Resource Returned in Location Header Is Available + +Create duplicated Performance subscription with NFV-MANO creating duplicated subscriptions + [Tags] duplicated-subs + [Documentation] Test ID 8.3.2.6.9 + ... Test title: Create duplicated Performance subscription with NFV-MANO creating duplicated subscriptions + ... Test objective: The objective is to test the creation of a duplicated performance subscription and perform a JSON schema and content validation of the returned duplicated subscription data structure. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO supports the creation of duplicated subscriptions + ... Post-Conditions: The duplicated performance subscription is successfully set and it matches the issued subscription + Send Post Request for Duplicated Performance Subscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PmSubscription + Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription + Check Postcondition Performance Subscription Is Set + +PUT Performance Subscriptions - Method not implemented + [Documentation] Test ID 8.3.2.6.10 + ... Test title: PUT Performance Subscriptions - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to modify performance subscriptions + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Put Request for Performance Subscriptions + Check HTTP Response Status Code Is 405 + +PATCH Performance Subscriptions - Method not implemented + [Documentation] Test ID 8.3.2.6.11 + ... Test title: PATCH Performance Subscriptions - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to update performance subscriptions + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Patch Request for Performance Subscriptions + Check HTTP Response Status Code Is 405 + +DELETE Performance Subscriptions - Method not implemented + [Documentation] Test ID 8.3.2.6.12 + ... Test title: DELETE Performance Subscriptions - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to delete performance subscriptions + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The performance subscriptions are not deleted by the failed operation + Send Delete Request for Performance Subscriptions + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Subscriptions Exists + +*** Keywords *** + +Create Sessions + Pass Execution If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 0 MockServer not necessary to run + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} + +Check Notification Endpoint + &{notification_request}= Create Mock Request Matcher GET ${callback_endpoint} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + +Check HTTP Response Body Subscription Identifier matches the requested Subscription + Log Trying to check response ID + Should Be Equal As Strings ${response['body']['id']} ${subscriptionId} + Log Subscription identifier as expected + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check LINK in Header + ${linkURL}= Get Value From Json ${response['headers']} $..Link + Should Not Be Empty ${linkURL} + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + + +Check HTTP Response Body Is Empty + Should Be Empty ${response['body']} + Log No json schema is provided. Validation OK + +Get all Performance Subscriptions + Set headers {"Accept": "application/json"} + Set headers {"Content-Type": "application/json"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + + Get Performance Subscriptions with attribute-based filters + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${filter_ok} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Performance Subscriptions with invalid attribute-based filters + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${filter_ko} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Performance Subscriptions with invalid resource endpoint + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscription + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post Request for Performance Subscription + Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + ${body_request}= Get File jsons/subscriptions.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${output}= Output response + Set Suite Variable ${response} ${output} + Run Keyword If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 1 + ... Check Notification Endpoint + +Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription + Log Check Response matches subscription + ${body}= Get File jsons/subscriptions.json + ${subscription}= evaluate json.loads('''${body}''') json + Should Be Equal As Strings ${response['body']['callbackUri']} ${subscription['callbackUri']} + +Check Postcondition Performance Subscription Is Set + Log Check Postcondition subscription exist + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${response['body']['id']} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + +Send Post Request for Duplicated Performance Subscription + Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + ${body_request}= Get File jsons/subscriptions.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check Postcondition Subscription Resource Returned in Location Header Is Available + Log Going to check postcondition + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${response['headers']['Location']} + Integer response status 200 + Log Received a 200 OK as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + ${result}= Output response body + Validate Json PmSubscription.schema.json ${result} + Log Validated PmSubscription schema + +Send Put Request for Performance Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch Request for Performance Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete Request for Performance Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Performance Subscriptions Exists + Log Checking that subscriptions exists + Get all Performance Subscriptions \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/subscriptions.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/subscriptions.txt new file mode 100644 index 000000000..49e695b6e --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/subscriptions.txt @@ -0,0 +1,7 @@ +*** Variables *** +${callbackUri} http://172.22.1.7:9091/nfvmanopm/subscriptions +${filter_ok} callbackUri=${callbackUri} +${filter_ko} erroneousFilter=erroneous +${total_polling_time} 2 min +${polling_interval} 10 sec +${response} httpresponse diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt index 3ea92791d..28bd7e49e 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt @@ -28,4 +28,6 @@ ${sleep_interval} 20s ${total_polling_time} 2 min ${polling_interval} 10 sec -${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar \ No newline at end of file +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar + +${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json new file mode 100644 index 000000000..8ceab118a --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json @@ -0,0 +1,6 @@ +{ + "callbackUri": "http://172.22.1.7:9091/nfvmanopm/subscriptions", + "filter": { + "notificationTypes": ["ThresholdCrossedNotification"] + } +} \ No newline at end of file -- GitLab From 98e785d17f87a8c1596b678d134cde0444028919 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 29 Jul 2020 14:09:42 +0500 Subject: [PATCH 032/116] fixed issue in Threshold --- SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot index 815bad6c4..a218a2155 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot @@ -40,7 +40,7 @@ GET Performance Threshold with Paged Response ... Test objective: The objective is to query information about NFV-MANO Performance Thresholds to get Paged Response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_VNFM + ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: GET all Performance Thresholds @@ -66,7 +66,7 @@ GET Performance Threshold - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of NFV-MANO performance thresholds fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_VNFM + ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: GET all Performance Thresholds -- GitLab From b0b13392f4fded44a4ee92d047c443b4ca5c46d8 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 29 Jul 2020 14:44:12 +0500 Subject: [PATCH 033/116] Subscription Schemas Added --- .../schemas/PmSubscription.schema.json | 110 +++++++++++++++++ .../schemas/PmSubscriptions.schema.json | 113 ++++++++++++++++++ 2 files changed, 223 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscription.schema.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscriptions.schema.json diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscription.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscription.schema.json new file mode 100644 index 000000000..848628dcc --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscription.schema.json @@ -0,0 +1,110 @@ +{ + "description": "This type represents a subscription. \n", + "type": "object", + "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. 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", + "type": "object", + "properties": { + "pmSubscriptionFilter": { + "description": "This type represents subscription filter criteria to match NFV-MANO functional entities and their associated managed objects. \n", + "type": "object", + "properties": { + "manoEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "manoServiceIds": { + "description": "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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" + } + }, + "manoServiceNames": { + "description": "If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "manoServiceInterfaceIds": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance identifier listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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 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" + } + }, + "manoServiceInterfaceNames": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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" + } + }, + "consumedManoInterfaceIds": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance identifier listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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" + } + }, + "consumedManoInterfaceNames": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance Name listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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:\n - ThresholdCrossedNotification\n - PerformanceInformationAvailableNotification\n\nThe 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": "object", + "properties": { + "links": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "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" + } + } + } + }, + "required": [ + "links", + "self" + ] + } + }, + "required": [ + "id", + "callbackUri" + ] + } \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscriptions.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscriptions.schema.json new file mode 100644 index 000000000..50d8ef1dd --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/PmSubscriptions.schema.json @@ -0,0 +1,113 @@ +{ +"type": "array", + "items": { + "description": "This type represents a subscription. \n", + "type": "object", + "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. 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", + "type": "object", + "properties": { + "pmSubscriptionFilter": { + "description": "This type represents subscription filter criteria to match NFV-MANO functional entities and their associated managed objects. \n", + "type": "object", + "properties": { + "manoEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "manoServiceIds": { + "description": "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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" + } + }, + "manoServiceNames": { + "description": "If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "manoServiceInterfaceIds": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance identifier listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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 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" + } + }, + "manoServiceInterfaceNames": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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" + } + }, + "consumedManoInterfaceIds": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance identifier listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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" + } + }, + "consumedManoInterfaceNames": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance Name listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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:\n - ThresholdCrossedNotification\n - PerformanceInformationAvailableNotification\n\nThe 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": "object", + "properties": { + "links": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "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" + } + } + } + }, + "required": [ + "links", + "self" + ] + } + }, + "required": [ + "id", + "callbackUri" + ] + } +} \ No newline at end of file -- GitLab From 836d7330e9befb04b70f3cd5dde56c48846d0cef Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 29 Jul 2020 17:02:06 +0500 Subject: [PATCH 034/116] Added Test Cases for individualSubscription.robot --- .../IndividualSubscription.robot | 191 ++++++++++++++++++ .../environment/individualSubscription.txt | 5 + 2 files changed, 196 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/individualSubscription.txt diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot new file mode 100644 index 000000000..5f51a6a2c --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot @@ -0,0 +1,191 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Resource environment/individualSubscription.txt + +*** Test Cases *** +GET Individual Performance Subscription + [Documentation] Test ID: 8.3.2.7.1 + ... Test title: GET Individual Performance Subscription + ... Test objective: The objective is to test the retrieval of individual performance subscription and perform a JSON schema and content validation of the returned subscription data structure. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.9.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Performance Subscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmSubscription + Check HTTP Response Body Subscription Identifier matches the requested Subscription + +GET Individual Performance Subscription with invalid resource identifier + [Documentation] Test ID: 8.3.2.7.2 + ... Test title: GET Individual Performance Subscription with invalid resource identifier + ... Test objective: The objective is to test that the retrieval of an individual performance subscription fails when using an invalid resource identifier. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.9.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual Performance Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 + +DELETE Individual Performance Subscription + [Documentation] Test ID: 8.3.2.7.3 + ... Test title: DELETE Individual Performance Subscription + ... Test objective: The objective is to test the deletion of an individual performance subscription + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.9.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Subscription is not available anymore in the NFV-MANO + Send Delete request for individual Performance Subscription + Check HTTP Response Status Code Is 204 + Check Postcondition Performance Subscription is Deleted + +DELETE Individual Performance Subscription with invalid resource identifier + [Documentation] Test ID: 8.3.2.7.4 + ... Test title: DELETE Individual Performance Subscription with invalid resource identifier + ... Test objective: The objective is to test that the deletion of an individual performance subscription fails when using an invalid resource identifier. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.9.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual Performance Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 + +POST Individual Performance Subscription - Method not implemented + [Documentation] Test ID: 8.3.2.7.5 + ... Test title: POST Individual Performance Subscription - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Subscription + ... Pre-conditions: An instance is instantiated + ... Reference: clause 6.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Subscription is not created on the NFV-MANO + Send Post request for individual Performance Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Subscription is not Created + +PUT Individual Performance Subscription - Method not implemented + [Documentation] Test ID: 8.3.2.7.6 + ... Test title: PUT Individual Performance Subscription - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update an existing Performance subscription. + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.9.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance subscription is not modified by the operation + Send Put request for individual Performance Threshold + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Subscription is Unmodified (Implicit) + +PATCH Individual Performance Subscription - Method not implemented + [Documentation] Test ID: 8.3.2.7.7 + ... Test title: PATCH Individual Performance Subscription - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing Performance subscription + ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Reference: clause 6.5.9.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance subscription is not modified by the operation + Send Patch request for individual Performance Threshold + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Subscription is Unmodified (Implicit) + + +*** Keywords *** +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + +Get Individual Performance Subscription + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + 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 + Should Be Equal As Strings ${response['body']['id']} ${subscriptionId} + Log Subscription identifier as expected + +GET individual Performance Subscription with invalid resource identifier + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for individual Performance Subscription + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for individual Performance Subscription with invalid resource identifier + Log Trying to delete a subscription in the NFV-MANO with invalid id + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Check Postcondition Performance Subscription is Deleted + Log Check Postcondition Subscription is deleted + GET individual Performance Subscription + Check HTTP Response Status Code Is 404 + +Send Post request for individual Performance Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Check Postcondition Performance Subscription is not Created + Log Trying to get a new subscription + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + Check HTTP Response Status Code Is 404 + +Send Put request for individual Performance Threshold + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Patch request for individual Performance Threshold + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Check Postcondition Performance Subscription is Unmodified (Implicit) + Log Check postconidtion subscription not modified + GET individual Performance Subscription + Log Check Response matches original Subscription + ${subscription}= evaluate json.loads('''${response['body']}''') json + Should Be Equal As Strings ${origResponse['body']['id']} ${subscription.id} + Should Be Equal As Strings ${origResponse['body']['callbackUri']} ${subscription.callbackUri} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/individualSubscription.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/individualSubscription.txt new file mode 100644 index 000000000..945e4c67f --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/individualSubscription.txt @@ -0,0 +1,5 @@ +*** Variables *** +${erroneousSubscriptionId} erroneousSubscriptionId +${newSubscriptionId} newSubsciptionId +${response} httpresponse +${origResponse} httpresponse \ No newline at end of file -- GitLab From 7b951530b4fda486ab9d0f3fb5068255b30ac161 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 29 Jul 2020 17:12:26 +0500 Subject: [PATCH 035/116] Added Test Cases for NotificationEndpoint.robot --- .../PerformanceManagementNotification.robot | 113 ++++++++++++++++++ .../environment/notifications.txt | 12 ++ ...formationAvailableNotification.schema.json | 105 ++++++++++++++++ .../ThresholdCrossedNotification.schema.json | 113 ++++++++++++++++++ 4 files changed, 343 insertions(+) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/environment/notifications.txt create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceInformationAvailableNotification.schema.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/schemas/ThresholdCrossedNotification.schema.json diff --git a/SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot b/SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot new file mode 100644 index 000000000..fe84432d6 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot @@ -0,0 +1,113 @@ +*** Setting *** +Resource environment/notifications.txt +Resource environment/variables.txt +Suite Setup Create Sessions +Suite Teardown Terminate All Processes kill=true +Library MockServerLibrary +Library Process +Library OperatingSystem +Library BuiltIn +Library Collections +Library String + + +*** Test Cases *** +Performance Information Availability Notification + [Documentation] Test ID: 8.3.2.8.1 + ... Test title: Performance Information Availability Notification + ... Test objective: The objective is to test the dispatch of Performance Information Availability Notification when new performance information is available 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 performance job is created, and a subscription for information availability notifications is available in the NFV-MANO. + ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Trigger the availability of Performance Information (external action) + Check Performance Information Available Notification Http POST Request Body Json Schema Is PerformanceInformationAvailableNotification + Check Performance Information Available Notification Http POST Request Body notificationType attribute Is PerformanceInformationAvailableNotification + +Threshold Crossed Notification + [Documentation] Test ID: 8.3.2.8.2 + ... Test title: Threshold Crossed Notification + ... Test objective: The objective is to test the dispatch of Threshold Crossed Notification when a previously set performance metric threshold is crossed, 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 threshold subscription is available in the NFV-MANO. + ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Trigger the cross of Performance Threshold (external action) + Check Threshold Crossed Notification Http POST Request Body Json Schema Is ThresholdCrossedNotification + Check Threshold Crossed Notification Http POST Request Body notificationType attribute Is ThresholdCrossedNotification + + +*** Keywords *** +Trigger the availability of Performance Information (external action) + #do nothing + Log do nothing + +Trigger the cross of Performance Threshold (external action) + #do nothing + Log do nothing + +Check Performance Information Available Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check Performance Information Available Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification Performance Information Available Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Check Threshold Crossed Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + + +Check Threshold Crossed Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification Threshold Crossed Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + + +Check Threshold Crossed Notification Http POST Request Body changeType attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + + +Configure Notification Performance Information Available Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Configure Notification Threshold Crossed Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Configure Notification Forward + [Arguments] ${schema} ${endpoint} ${endpoint_fwd} + Log Creating mock Http POST forward to handle ${schema} + &{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema} + &{notification_fwd}= Create Mock Http Forward ${endpoint_fwd} + Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd} + +Create Sessions + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/notifications.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/notifications.txt new file mode 100644 index 000000000..cd1193ae5 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/notifications.txt @@ -0,0 +1,12 @@ +*** Variables *** +${callback_uri} http://localhost +${callback_port} 9091 +${callback_endpoint} /endpoint +${callback_endpoint_fwd} /endpoint/check +${callback_endpoint_error} /endpoint_404 +${sleep_interval} 20s +${total_polling_time} 2 min +${polling_interval} 10 sec + +${notification_request} [] +${notification_response} [] \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceInformationAvailableNotification.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceInformationAvailableNotification.schema.json new file mode 100644 index 000000000..04ae7ead4 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/PerformanceInformationAvailableNotification.schema.json @@ -0,0 +1,105 @@ +{ + "description": "This notification informs the receiver that performance information is available. The timing of sending this notification is determined by the capability of the producing entity to evaluate the threshold crossing condition. The notification shall be triggered by the VNFM when new performance information collected by a PM job is available.\n", + "type": "object", + "required": [ + "id", + "notificationType", + "subscriptionId", + "timeStamp", + "objectInstanceId", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"PerformanceInformationAvailableNotification\" for this notification type.\n", + "type": "string", + "enum": [ + "PerformanceInformationAvailableNotification" + ] + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "objectInstanceId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "_links": { + "description": "Links to resources related to this notification.\n", + "type": "object", + "required": [ + "subscription", + "pmJob", + "performanceReport" + ], + "properties": { + "subscription": { + "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" + } + } + }, + "objectInstance": { + "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" + } + } + }, + "pmJob": { + "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" + } + } + }, + "performanceReport": { + "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 diff --git a/SOL009/NFVMANOPerformanceManagement-API/schemas/ThresholdCrossedNotification.schema.json b/SOL009/NFVMANOPerformanceManagement-API/schemas/ThresholdCrossedNotification.schema.json new file mode 100644 index 000000000..e5cec2303 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/schemas/ThresholdCrossedNotification.schema.json @@ -0,0 +1,113 @@ +{ + "description": "This type represents a notification that is sent when a threshold has been crossed. The notification shall be triggered by the VNFM when a threshold has been crossed.\n", + "type": "object", + "required": [ + "id", + "notificationType", + "subscriptionId", + "timeStamp", + "thresholdId", + "crossingDirection", + "objectInstanceId", + "performanceMetric", + "performanceValue", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"ThresholdCrossedNotification\" for this notification type.\n", + "type": "string", + "enum": [ + "ThresholdCrossedNotification" + ] + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "thresholdId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "crossingDirection": { + "type": "string", + "enum": [ + "UP", + "DOWN" + ] + }, + "objectInstanceId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "performanceMetric": { + "description": "Performance metric associated with the threshold.\n", + "type": "string" + }, + "performanceValue": { + "description": "Value of the metric that resulted in threshold crossing. The type of the \"performanceValue\" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures / Objects)) is assumed to be defined in the external measurement specification (see ETSI GS NFV-IFA 027).\n", + "type": "object" + }, + "_links": { + "description": "Links to resources related to this notification.\n", + "type": "object", + "required": [ + "subscription", + "threshold" + ], + "properties": { + "subscription": { + "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" + } + } + }, + "objectInstance": { + "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" + } + } + }, + "threshold": { + "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 From ba87f69e76686b3b5d4142cd7f5a36279bb3f98a Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 10 Aug 2020 09:48:13 +0500 Subject: [PATCH 036/116] Added API for NFV-MANO Performance Management --- ...L009-NFVMANOPerformanceManagement-API.yaml | 20940 ++++++++++++++++ libspecs/Easter.libspec | 2 +- libspecs/Reserved.libspec | 2 +- 3 files changed, 20942 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/SOL009-NFVMANOPerformanceManagement-API.yaml diff --git a/SOL009/NFVMANOPerformanceManagement-API/SOL009-NFVMANOPerformanceManagement-API.yaml b/SOL009/NFVMANOPerformanceManagement-API/SOL009-NFVMANOPerformanceManagement-API.yaml new file mode 100644 index 000000000..38e44fa0c --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/SOL009-NFVMANOPerformanceManagement-API.yaml @@ -0,0 +1,20940 @@ +openapi: 3.0.2 +info: + version: '1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1' + title: SOL009 - NFV-MANO Performance Management Interface + description: > + SOL009 - NFV-MANO Performance Management Interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to and has not been + approved by the ETSI NFV ISG. In case of discrepancies the published ETSI + Group Specification takes precedence. Please report bugs to + https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + license: + name: ETSI Forge copyright notice + url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' + contact: + name: NFV-SOL WG +externalDocs: + description: ETSI GS NFV-SOL 009 V3.3.1 + url: >- + https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf +servers: + - url: 'http://0.0.0.0/nfvmanopm/v1' + description: | + API HTTP Server + - url: 'https://0.0.0.0/nfvmanopm/v1' + description: | + API HTTPS Server +paths: + /api_versions: + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: false + schema: + type: string + - name: Authorization + description: 'The authorization token for the request. Reference: IETF RFC 7235' + in: header + required: false + schema: + type: string + get: + summary: Retrieve API version information + description: > + The GET method reads API version information. This method shall follow + the provisions specified in table 4.6.3.3.3.2-1 for request and response + data structures, and response codes. URI query parameters are not + supported. + responses: + '200': + description: > + 200 OK + + API version information was read successfully. The response body + shall contain 4.4 API version information, as defined in clause + 4.4.1.13. + content: + application/json: + schema: + description: | + This type represents API version information. + type: object + required: + - uriPrefix + - apiVersions + properties: + uriPrefix: + description: > + Specifies the URI prefix for the API, in the following + form {apiRoot}/{apiName}/{apiMajorVersion}/. + type: string + apiVersions: + description: > + Version(s) supported for the API signaled by the uriPrefix + attribute. + type: array + items: + type: object + required: + - version + properties: + version: + description: > + Identifies a supported version. The value of the + version attribute shall be a version identifier as + specified in clause 9.1 (SOL013). + type: string + isDeprecated: + description: > + If such information is available, this attribute + indicates whether use of the version signaled by the + version attribute is deprecated (true) or not + (false). + + A deprecated version is still supported by the API + producer but is recommended not to be used any + longer. When a version is no longer supported, it + does not appear in the response body. + type: boolean + retirementDate: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: The used API version. + schema: + type: string + maximum: 1 + minimum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '413': + description: > + 413 PAYLOAD TOO LARGE + + If the payload body of a request is larger than the amount of data + the API producer is willing or able to process, it shall respond + with this response code, following the provisions in IETF RFC 7231 + for the use of the "Retry-After" HTTP header and for closing the + connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '414': + description: > + 414 URI TOO LONG + + If the request URI of a request is longer than the API producer is + willing or able to process, it shall respond with this response + code. This condition can e.g. be caused by passing long queries in + the request URI of a GET request. The "ProblemDetails" structure may + be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '416': + description: | + 416 Range Not Satisfiable + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '429': + description: > + 429 TOO MANY REQUESTS + + If the API consumer has sent too many requests in a defined period + of time and the API producer is able to detect that condition ("rate + limiting"), the API producer shall respond with this response code, + following the provisions in IETF RFC 6585 [17] for the use of the + "Retry-After" HTTP header. The "ProblemDetails" structure shall be + provided and shall include in the "detail" attribute more + information about the source of the problem. + + The period of time and allowed number of requests are configured + within the API producer by means outside the scope of the present + document. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /pm_jobs: + post: + description: > + Creates a PM job. + + This method shall follow the provisions specified in the tables + 6.5.3.3.1-1 and 6.5.3.3.1-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: | + PM job creation request. + content: + application/json: + schema: + description: | + This type represents a request to create a PM job. + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS + NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is requested to be collected. This + attribute shall contain the identifier of the instance of + the measure object according to their type. See also + definitions in clause 8.2 of ETSI GS NFV-IFA 031. If more + than one identifier is provided, values shall all refer to + measured object instances of the same type, for which the + same criteria is then applicable. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance for which performance information is + requested to be collected. May be present if a sub-object + is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type. If this attribute is present, + the cardinality of the "objectInstanceIds" attribute shall + be 1. If this attribute is absent and a sub-object is + defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type, measurements will be taken + for all sub-object instances of the measured object + instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the + specified measured object(s). This attribute’s value + shall contain the related "Measurement Name" values as + defined in clause 8.4 of ETSI GS NFV-IFA 031. At least + one of the two attributes (performance metric or group) + shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer that + it can decompose to individual metrics. This + attribute’s value shall contain the related + "Measurement Group" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two attributes + (performance metric or group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of the + collectionPeriod. In the latter case, the performance + data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance + information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of the + collectionPeriod. In the latter case, the performance + data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + required: + - objectType + - objectInstanceIds + - criteria + required: true + responses: + '201': + description: > + 201 CREATED + + Shall be returned when the PM job has been created successfully. + + The response body shall contain a representation of the created + "Individual PM job" resource, as defined in clause 6.6.2.7. + + The HTTP response shall include a "Location" HTTP header that + points to the created "Individual PM job" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a PM job. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: > + Type of measured object. The applicable measured object + type for a measurement is defined in clause 8.2 of ETSI + GS NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is collected. This attribute + shall contain the identifier of the instance of the + measure object according to their type. See also + definitions in clause 8.2 of ETSI GS NFV-IFA 031. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance for which performance information is + requested to be collected. May be present if a sub-object + is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type. If this attribute is + present, the cardinality of the "objectInstanceIds" + attribute shall be 1. If this attribute is absent and a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA + 031 for the related measured object type, measurements + will be taken for all sub-object instances of the + measured object instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the + specified measured object(s). This attribute’s value + shall contain the related "Measurement Name" values + as defined in clause 8.4 of ETSI GS NFV-IFA 031. At + least one of the two attributes (performance metric or + group) shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer + that it can decompose to individual metrics. This + attribute’s value shall contain the related + "Measurement Group" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two + attributes (performance metric or group) shall be + present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of + the collectionPeriod. In the latter case, the + performance data for the collection periods within one + reporting period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance + information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of + the collectionPeriod. In the latter case, the + performance data for the collection periods within one + reporting period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + reports: + description: > + Information about available reports collected by this PM + job. + type: array + items: + type: object + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: | + Unsigned integer + type: number + required: + - href + - readyTime + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: > + Links to resources representing the measured object + instances for which performance information is + collected. Shall be present if the measured object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + get: + description: | + The client can use this method to retrieve information about PM jobs. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of + ETSI GS NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this + parameter as part of the URI query string. The API consumer may + supply this parameter. + + All attribute names that appear in the PmJob and in data types + referenced from it shall be supported by the NFV-MANO functional + entity in the expression. + in: query + required: false + schema: + type: string + - name: all_fields + description: > + Include all complex attributes in the response. See clause 5.3 of + ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support + this parameter. + in: query + required: false + schema: + type: string + - name: fields + description: > + Complex attributes to be included into the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_fields + description: > + Complex attributes to be excluded from the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the PmJob structure + in the response body if this parameter is provided, or none of the + parameters "all_fields," "fields", "exclude_fields", + "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about zero or more PM jobs has + been queried successfully. + + The response body shall contain in an array the representations of + zero or more PM jobs, as defined in clause 6.6.2.7. + + If the "filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or + "exclude_default" URI parameters was supplied in the request, the + data in the response body shall have been transformed according to + the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL + 013, respectively. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013 . + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + This type represents a PM job. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + objectType: + description: > + Type of measured object. The applicable measured object + type for a measurement is defined in clause 8.2 of ETSI + GS NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is collected. This attribute + shall contain the identifier of the instance of the + measure object according to their type. See also + definitions in clause 8.2 of ETSI GS NFV-IFA 031. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance for which performance information is + requested to be collected. May be present if a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA + 031 for the related measured object type. If this + attribute is present, the cardinality of the + "objectInstanceIds" attribute shall be 1. If this + attribute is absent and a sub-object is defined in + clause 8.2 of ETSI GS NFV-IFA 031 for the related + measured object type, measurements will be taken for + all sub-object instances of the measured object + instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for + the specified measured object(s). This attribute’s + value shall contain the related "Measurement Name" + values as defined in clause 8.4 of ETSI GS NFV-IFA + 031. At least one of the two attributes + (performance metric or group) shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer + that it can decompose to individual metrics. This + attribute’s value shall contain the related + "Measurement Group" values as defined in clause 8.4 + of ETSI GS NFV-IFA 031. At least one of the two + attributes (performance metric or group) shall be + present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer + will inform the API consumer about availability of + the performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of + the collectionPeriod. In the latter case, the + performance data for the collection periods within + one reporting period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can + be supported depends on the capability of the + producing entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance + information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer + will inform the API consumer about availability of + the performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of + the collectionPeriod. In the latter case, the + performance data for the collection periods within + one reporting period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can + be supported depends on the capability of the + producing entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + reports: + description: > + Information about available reports collected by this PM + job. + type: array + items: + type: object + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: | + Unsigned integer + type: number + required: + - href + - readyTime + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: > + Links to resources representing the measured object + instances for which performance information is + collected. Shall be present if the measured object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + '400': + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/pm_jobs/{pmJobId}': + parameters: + - name: pmJobId + in: path + description: Identifier of the PM Job + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: | + The client can use this method for reading an individual PM job. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about an individual PM job has + been read successfully. + + The response body shall contain a representation of the "Individual + PM job" resource, as defined in clause 6.6.2.7. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a PM job. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: > + Type of measured object. The applicable measured object + type for a measurement is defined in clause 8.2 of ETSI + GS NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is collected. This attribute + shall contain the identifier of the instance of the + measure object according to their type. See also + definitions in clause 8.2 of ETSI GS NFV-IFA 031. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance for which performance information is + requested to be collected. May be present if a sub-object + is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type. If this attribute is + present, the cardinality of the "objectInstanceIds" + attribute shall be 1. If this attribute is absent and a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA + 031 for the related measured object type, measurements + will be taken for all sub-object instances of the + measured object instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the + specified measured object(s). This attribute’s value + shall contain the related "Measurement Name" values + as defined in clause 8.4 of ETSI GS NFV-IFA 031. At + least one of the two attributes (performance metric or + group) shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer + that it can decompose to individual metrics. This + attribute’s value shall contain the related + "Measurement Group" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two + attributes (performance metric or group) shall be + present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of + the collectionPeriod. In the latter case, the + performance data for the collection periods within one + reporting period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance + information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of + the collectionPeriod. In the latter case, the + performance data for the collection periods within one + reporting period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + reports: + description: > + Information about available reports collected by this PM + job. + type: array + items: + type: object + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: | + Unsigned integer + type: number + required: + - href + - readyTime + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: > + Links to resources representing the measured object + instances for which performance information is + collected. Shall be present if the measured object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: | + This method terminates an individual PM job. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: | + 204 NO CONTENT + Shall be returned when the PM job has been deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/pm_jobs/{pmJobId}/reports/{reportId}': + parameters: + - name: pmJobId + in: path + description: Identifier of the PM Job + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + - name: reportId + in: path + description: Identifier of the PM report + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: > + The client can use this method for reading an individual performance + report. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information of an individual performance + report has been read successfully. + + The response body shall contain a representation of the "Individual + performance report" resource, as defined in clause 6.6.2.10. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type defines the format of a performance report provided + by the NFV-MANO functional entity to the API consumer as a + result of collecting performance information as part of a PM + job. + type: object + properties: + entries: + description: > + List of performance information entries. Each performance + report entry is for a given metric of a given object + (i.e. measured object instance) corresponding to the + related measured object types, but can include multiple + collected values. + type: array + items: + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured + object type for a measurement is defined in clause + 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable + if attribute "manoEntityComponents" in + "ManoEntity" is supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being + globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + subObjectInstanceId: + 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.. + type: string + performanceMetric: + description: > + Name of the metric collected. This attribute shall + contain the related "Measurement Name" value as + defined in clause 8.4 of ETSI GS NFV-IFA 031. + type: string + performanceValues: + description: > + List of performance values with associated + timestamp. + type: array + items: + type: object + properties: + timeStamp: + description: > + Date-time stamp. Representation: String + formatted according to IETF RFC 3339. + type: string + format: date-time + value: + description: > + Value of the metric collected. The type of + this attribute shall correspond to the + related "Measurement Unit" as defined in + clause 8.4 of ETSI GS NFV-IFA 031. + context: + 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. + type: object + required: + - timeStamp + - value + minItems: 1 + required: + - objectType + - objectInstanceId + - performanceMetric + - performanceValues + minItems: 1 + required: + - entries + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /thresholds: + post: + description: | + The POST method can be used by the client to create a threshold. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: | + Request parameters to create a threshold. + content: + application/json: + schema: + description: | + This type represents a request to create a threshold. + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS + NFV-IFA 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance associated with this threshold. May be + present if a sub-object is defined in clause 8.2 of ETSI GS + NFV-IFA 031 for the related measured object type. If this + attribute is absent and a sub-object is defined in clause + 8.2 of ETSI GS NFV-IFA 031 for the related measured object + type, thresholds will be set for all sub-object instances + of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in clause + 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other + attributes are present in the data structure. Permitted + values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. + The definition of additional threshold types is left + for future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + required: + - objectType + - objectInstanceId + - criteria + required: true + responses: + '201': + description: > + 201 CREATED + + Shall be returned when a threshold has been created successfully. + + The response body shall contain a representation of the created + "Individual threshold" resource, as defined in clause 6.6.2.9. + + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the created "Individual threshold" + resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state + operation occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: '' + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: >- + Type of measured object. The applicable measured object + type for a measurement is defined in clause 8.2 of ETSI GS + NFV-IFA 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance associated with this threshold. May be + present if a sub-object is defined in clause 8.2 of ETSI + GS NFV-IFA 031 for the related measured object type. If + this attribute is absent and a sub-object is defined in + clause 8.2 of ETSI GS NFV-IFA 031 for the related + measured object type, thresholds are set for all + sub-object instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in + clause 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which + other attributes are present in the data structure. + Permitted values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are + defined. The definition of additional threshold types + is left for future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + object: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + get: + description: | + The client can use this method to query information about thresholds. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of + ETSI GS NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this + parameter as part of the URI query string. The API consumer may + supply this parameter. + + All attribute names that appear in the Threshold and in data types + referenced from it shall be supported by the NFV-MANO functional + entity in the expression. + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about zero or more thresholds + has been queried successfully. + + The response body shall contain in an array the representations of + zero or more thresholds, as defined in clause 6.6.2.9. + + If the "filter" URI parameter was supplied in the request, the data + in the response body shall have been transformed according to the + rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: '' + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + objectType: + description: >- + Type of measured object. The applicable measured object + type for a measurement is defined in clause 8.2 of ETSI + GS NFV-IFA 031. + type: string + objectInstanceId: + description: > + An identifier with the intention of being globally + unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance associated with this threshold. May be + present if a sub-object is defined in clause 8.2 of ETSI + GS NFV-IFA 031 for the related measured object type. If + this attribute is absent and a sub-object is defined in + clause 8.2 of ETSI GS NFV-IFA 031 for the related + measured object type, thresholds are set for all + sub-object instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in + clause 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which + other attributes are present in the data structure. + Permitted values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are + defined. The definition of additional threshold + types is left for future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + object: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + '400': + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/thresholds/{thresholdId}': + parameters: + - name: thresholdId + in: path + description: Identifier of the PM threshold + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: | + The client can use this method for reading an individual threshold + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about an individual threshold + has been read successfully. + + The response body shall contain a representation of the threshold, + as defined in clause 6.6.2.9. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: '' + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: >- + Type of measured object. The applicable measured object + type for a measurement is defined in clause 8.2 of ETSI GS + NFV-IFA 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance associated with this threshold. May be + present if a sub-object is defined in clause 8.2 of ETSI + GS NFV-IFA 031 for the related measured object type. If + this attribute is absent and a sub-object is defined in + clause 8.2 of ETSI GS NFV-IFA 031 for the related + measured object type, thresholds are set for all + sub-object instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in + clause 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which + other attributes are present in the data structure. + Permitted values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are + defined. The definition of additional threshold types + is left for future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + object: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: | + This method allows to delete a threshold. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: | + 204 NO CONTENT + Shall be returned when the threshold has been deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /subscriptions: + post: + description: | + The POST method creates a new subscription. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: | + Details of the subscription to be created. + content: + application/json: + schema: + description: | + This type represents a subscription request. + type: object + properties: + filter: + description: > + This type represents a filter that can be used to subscribe + for notifications related to performance management + events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their associated + managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference to + NFV-MANO services in a filter. They should not be + used together in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed in + this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed in + this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization + which the API consumer is willing to accept when + receiving a notification. Permitted values: * BASIC: In + every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to + the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the + contained information has not been provisioned out of + band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType + is "OAUTH2_CLIENT_CREDENTIALS" and the contained + information has not been provisioned out of band. Shall + be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + clientPassword: + description: > + Client password to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - callbackUri + required: true + responses: + '201': + description: > + 201 CREATED + + Shall be returned when the subscription has been created + successfully. + + A representation of the created subscription resource shall be + returned in the response body, as defined in clause 6.6.2.3. + + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the created "Individual subscription" + resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state + operation occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: | + This type represents a subscription. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a filter that can be used to + subscribe for notifications related to performance + management events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference + to NFV-MANO services in a filter. They should not + be used together in the same filter instance, but + one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed + in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed + in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + The URI of the endpoint to send the notification to. + type: object + properties: + links: + description: | + String formatted according to IETF RFC 3986. + type: string + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - links + - self + required: + - id + - callbackUri + '303': + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the same callbackURI and + the same filter already exists and the policy of the NFV-MANO + functional entity is to not create redundant subscriptions. + + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the existing "Individual subscription" + resource. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state + operation occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + get: + description: > + The client can use this method to query the list of active + subscriptions to performance management notifications subscribed by the + client. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of + ETSI GS NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this + parameter as part of the URI query string. The API consumer may + supply this parameter. + + All attribute names that appear in the PmSubscription and in data + types referenced from it shall be supported by the NFV-MANO + functional entity in the expression. + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + Shall be returned when the list of subscriptions has been queried + successfully. + + The response body shall contain in an array the representations of + all active subscriptions of the functional block that invokes the + method, i.e. zero or more representations of PM subscriptions as + defined in clause 6.6.2.3. + + If the "filter" URI parameter was supplied in the request, the data + in the response body shall have been transformed according to the + rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: | + This type represents a subscription. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + filter: + description: > + This type represents a filter that can be used to + subscribe for notifications related to performance + management events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being + globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to + reference to NFV-MANO services in a filter. They + should not be used together in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity + produced interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity + produced interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives + to reference to NFV-MANO functional entity + consumed interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives + to reference to NFV-MANO functional entity + consumed interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + The URI of the endpoint to send the notification to. + type: object + properties: + links: + description: | + String formatted according to IETF RFC 3986. + type: string + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - links + - self + required: + - id + - callbackUri + '400': + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/subscriptions/{subscriptionId}': + parameters: + - name: subscriptionId + in: path + description: Identifier of the subscription + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: > + The client can use this method for reading an individual subscription + about performance management notifications subscribed by the client. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when the subscription has been read successfully. + + The response body shall contain a representation of the "Individual + subscription" resource, as defined in clause 6.6.2.3. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a subscription. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a filter that can be used to + subscribe for notifications related to performance + management events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference + to NFV-MANO services in a filter. They should not + be used together in the same filter instance, but + one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed + in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed + in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + The URI of the endpoint to send the notification to. + type: object + properties: + links: + description: | + String formatted according to IETF RFC 3986. + type: string + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - links + - self + required: + - id + - callbackUri + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: | + This method terminates an individual subscription. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: > + 204 NO CONTENT + + Shall be returned when the "Individual subscription" resource has + been deleted successfully. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI +components: + schemas: + PmSubscriptionRequest: + description: | + This type represents a subscription request. + type: object + properties: + filter: + description: > + This type represents a filter that can be used to subscribe for + notifications related to performance management events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" are + alternatives to reference to NFV-MANO services in a filter. + They should not be used together in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the + API consumer is willing to accept when receiving a notification. + Permitted values: * BASIC: In every HTTP request to the + notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is + sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. Shall + be present if authType is "BASIC" and the contained information + has not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information has + not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - callbackUri + PmSubscription: + description: | + This type represents a subscription. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a filter that can be used to subscribe for + notifications related to performance management events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" are + alternatives to reference to NFV-MANO services in a filter. + They should not be used together in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + The URI of the endpoint to send the notification to. + type: object + properties: + links: + description: | + String formatted according to IETF RFC 3986. + type: string + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - links + - self + required: + - id + - callbackUri + CreatePmJobRequest: + description: | + This type represents a request to create a PM job. + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type for a + measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which performance + information is requested to be collected. This attribute shall + contain the identifier of the instance of the measure object + according to their type. See also definitions in clause 8.2 of ETSI + GS NFV-IFA 031. If more than one identifier is provided, values + shall all refer to measured object instances of the same type, for + which the same criteria is then applicable. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance for which performance information is requested to be + collected. May be present if a sub-object is defined in clause 8.2 + of ETSI GS NFV-IFA 031 for the related measured object type. If this + attribute is present, the cardinality of the "objectInstanceIds" + attribute shall be 1. If this attribute is absent and a sub-object + is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related + measured object type, measurements will be taken for all sub-object + instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the specified + measured object(s). This attribute’s value shall contain the + related "Measurement Name" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two attributes + (performance metric or group) shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a pre-defined + list of metrics, known to the producer that it can decompose to + individual metrics. This attribute’s value shall contain the + related "Measurement Group" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two attributes + (performance metric or group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will collect + performance information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer will inform the + API consumer about availability of the performance data + collected for each completed collection period during this + reportingPeriod. The reportingPeriod should be equal to or a + multiple of the collectionPeriod. In the latter case, the + performance data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported depends on + the capability of the producing entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will report to + the API consumer about performance information. The unit shall + be seconds. + + At the end of each reportingPeriod, the producer will inform the + API consumer about availability of the performance data + collected for each completed collection period during this + reportingPeriod. The reportingPeriod should be equal to or a + multiple of the collectionPeriod. In the latter case, the + performance data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported depends on + the capability of the producing entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + required: + - objectType + - objectInstanceIds + - criteria + PmJob: + description: | + This type represents a PM job. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: > + Type of measured object. The applicable measured object type for a + measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which performance + information is collected. This attribute shall contain the + identifier of the instance of the measure object according to their + type. See also definitions in clause 8.2 of ETSI GS NFV-IFA 031. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance for which performance information is requested to be + collected. May be present if a sub-object is defined in clause 8.2 + of ETSI GS NFV-IFA 031 for the related measured object type. If this + attribute is present, the cardinality of the "objectInstanceIds" + attribute shall be 1. If this attribute is absent and a sub-object + is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the related + measured object type, measurements will be taken for all sub-object + instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the specified + measured object(s). This attribute’s value shall contain the + related "Measurement Name" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two attributes + (performance metric or group) shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a pre-defined + list of metrics, known to the producer that it can decompose to + individual metrics. This attribute’s value shall contain the + related "Measurement Group" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two attributes + (performance metric or group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will collect + performance information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer will inform the + API consumer about availability of the performance data + collected for each completed collection period during this + reportingPeriod. The reportingPeriod should be equal to or a + multiple of the collectionPeriod. In the latter case, the + performance data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported depends on + the capability of the producing entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will report to + the API consumer about performance information. The unit shall + be seconds. + + At the end of each reportingPeriod, the producer will inform the + API consumer about availability of the performance data + collected for each completed collection period during this + reportingPeriod. The reportingPeriod should be equal to or a + multiple of the collectionPeriod. In the latter case, the + performance data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported depends on + the capability of the producing entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + reports: + description: | + Information about available reports collected by this PM job. + type: array + items: + type: object + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + readyTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + fileSize: + description: | + Unsigned integer + type: number + required: + - href + - readyTime + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: > + Links to resources representing the measured object instances + for which performance information is collected. Shall be + present if the measured object instance information is + accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an absolute + URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + CreateThresholdRequest: + description: | + This type represents a request to create a threshold. + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type for a + measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance associated with this threshold. May be present if a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type. If this attribute is absent and a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type, thresholds will be set for all + sub-object instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the threshold. + This attribute’s value shall contain the related "Measurement + Name" values as defined in clause 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other + attributes are present in the data structure. Permitted values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. The + definition of additional threshold types is left for future + specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + required: + - objectType + - objectInstanceId + - criteria + Threshold: + description: '' + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: >- + Type of measured object. The applicable measured object type for a + measurement is defined in clause 8.2 of ETSI GS NFV-IFA 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance associated with this threshold. May be present if a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type. If this attribute is absent and a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type, thresholds are set for all sub-object + instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the threshold. + This attribute’s value shall contain the related "Measurement + Name" values as defined in clause 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other + attributes are present in the data structure. Permitted values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. The + definition of additional threshold types is left for future + specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + object: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + PerformanceReport: + description: > + This type defines the format of a performance report provided by the + NFV-MANO functional entity to the API consumer as a result of + collecting performance information as part of a PM job. + type: object + properties: + entries: + description: > + List of performance information entries. Each performance report + entry is for a given metric of a given object (i.e. measured object + instance) corresponding to the related measured object types, but + can include multiple collected values. + type: array + items: + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA + 031. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + subObjectInstanceId: + 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.. + type: string + performanceMetric: + description: > + Name of the metric collected. This attribute shall contain the + related "Measurement Name" value as defined in clause 8.4 of + ETSI GS NFV-IFA 031. + type: string + performanceValues: + description: | + List of performance values with associated timestamp. + type: array + items: + type: object + properties: + timeStamp: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + value: + description: > + Value of the metric collected. The type of this + attribute shall correspond to the related "Measurement + Unit" as defined in clause 8.4 of ETSI GS NFV-IFA 031. + context: + 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. + type: object + required: + - timeStamp + - value + minItems: 1 + required: + - objectType + - objectInstanceId + - performanceMetric + - performanceValues + minItems: 1 + required: + - entries + PmNotificationsFilter: + description: > + This type represents a filter that can be used to subscribe for + notifications related to performance management events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to match NFV-MANO + functional entities and their associated managed objects. + type: object + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" are + alternatives to reference to NFV-MANO services in a filter. + They should not be used together in the same filter instance, + but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced interfaces + with an instance identifier listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference to + NFV-MANO functional entity produced interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced interfaces + with an instance Name listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference to + NFV-MANO functional entity produced interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed interfaces + with an instance identifier listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference to + NFV-MANO functional entity consumed interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed interfaces + with an instance Name listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference to + NFV-MANO functional entity consumed interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + PmJobCriteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the specified + measured object(s). This attribute’s value shall contain the + related "Measurement Name" values as defined in clause 8.4 of ETSI + GS NFV-IFA 031. At least one of the two attributes (performance + metric or group) shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a pre-defined list + of metrics, known to the producer that it can decompose to + individual metrics. This attribute’s value shall contain the + related "Measurement Group" values as defined in clause 8.4 of ETSI + GS NFV-IFA 031. At least one of the two attributes (performance + metric or group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will collect + performance information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer will inform the API + consumer about availability of the performance data collected for + each completed collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of the + collectionPeriod. In the latter case, the performance data for the + collection periods within one reporting period are reported + together. + + In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the + capability of the producing entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will report to the + API consumer about performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will inform the API + consumer about availability of the performance data collected for + each completed collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of the + collectionPeriod. In the latter case, the performance data for the + collection periods within one reporting period are reported + together. + + In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the + capability of the producing entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + ThresholdCriteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the threshold. This + attribute’s value shall contain the related "Measurement Name" + values as defined in clause 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other attributes + are present in the data structure. Permitted values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. The + definition of additional threshold types is left for future + specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + responses: + pm_jobs.post.201: + description: > + 201 CREATED + + Shall be returned when the PM job has been created successfully. + + The response body shall contain a representation of the created + "Individual PM job" resource, as defined in clause 6.6.2.7. + + The HTTP response shall include a "Location" HTTP header that points to + the created "Individual PM job" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a PM job. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA + 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is collected. This attribute shall + contain the identifier of the instance of the measure object + according to their type. See also definitions in clause 8.2 of + ETSI GS NFV-IFA 031. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance for which performance information is requested to be + collected. May be present if a sub-object is defined in + clause 8.2 of ETSI GS NFV-IFA 031 for the related measured + object type. If this attribute is present, the cardinality of + the "objectInstanceIds" attribute shall be 1. If this + attribute is absent and a sub-object is defined in clause 8.2 + of ETSI GS NFV-IFA 031 for the related measured object type, + measurements will be taken for all sub-object instances of + the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the + specified measured object(s). This attribute’s value + shall contain the related "Measurement Name" values as + defined in clause 8.4 of ETSI GS NFV-IFA 031. At least + one of the two attributes (performance metric or group) + shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer that + it can decompose to individual metrics. This attribute’s + value shall contain the related "Measurement Group" + values as defined in clause 8.4 of ETSI GS NFV-IFA 031. + At least one of the two attributes (performance metric or + group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed collection + period during this reportingPeriod. The reportingPeriod + should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the + collection periods within one reporting period are + reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported + depends on the capability of the producing entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance information. + The unit shall be seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed collection + period during this reportingPeriod. The reportingPeriod + should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the + collection periods within one reporting period are + reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported + depends on the capability of the producing entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + reports: + description: | + Information about available reports collected by this PM job. + type: array + items: + type: object + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: | + Unsigned integer + type: number + required: + - href + - readyTime + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: > + Links to resources representing the measured object + instances for which performance information is collected. + Shall be present if the measured object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + pm_jobs.get.200: + description: > + 200 OK + + Shall be returned when information about zero or more PM jobs has been + queried successfully. + + The response body shall contain in an array the representations of zero + or more PM jobs, as defined in clause 6.6.2.7. + + If the "filter" URI parameter or one of the "all_fields", "fields" (if + supported), "exclude_fields" (if supported) or "exclude_default" URI + parameters was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clauses + 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013 . + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + This type represents a PM job. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS + NFV-IFA 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is collected. This attribute shall + contain the identifier of the instance of the measure + object according to their type. See also definitions in + clause 8.2 of ETSI GS NFV-IFA 031. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance for which performance information is + requested to be collected. May be present if a sub-object + is defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type. If this attribute is present, + the cardinality of the "objectInstanceIds" attribute shall + be 1. If this attribute is absent and a sub-object is + defined in clause 8.2 of ETSI GS NFV-IFA 031 for the + related measured object type, measurements will be taken + for all sub-object instances of the measured object + instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the + specified measured object(s). This attribute’s value + shall contain the related "Measurement Name" values as + defined in clause 8.4 of ETSI GS NFV-IFA 031. At least + one of the two attributes (performance metric or group) + shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer that + it can decompose to individual metrics. This + attribute’s value shall contain the related + "Measurement Group" values as defined in clause 8.4 of + ETSI GS NFV-IFA 031. At least one of the two attributes + (performance metric or group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of the + collectionPeriod. In the latter case, the performance + data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance + information. The unit shall be seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed + collection period during this reportingPeriod. The + reportingPeriod should be equal to or a multiple of the + collectionPeriod. In the latter case, the performance + data for the collection periods within one reporting + period are reported together. + + In particular when choosing short collection and + reporting periods, the number of PM jobs that can be + supported depends on the capability of the producing + entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + reports: + description: > + Information about available reports collected by this PM + job. + type: array + items: + type: object + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: | + Unsigned integer + type: number + required: + - href + - readyTime + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: > + Links to resources representing the measured object + instances for which performance information is + collected. Shall be present if the measured object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + pm_jobs.get.400: + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + pm_job.get.200: + description: > + 200 OK + + Shall be returned when information about an individual PM job has been + read successfully. + + The response body shall contain a representation of the "Individual PM + job" resource, as defined in clause 6.6.2.7. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a PM job. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA + 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is collected. This attribute shall + contain the identifier of the instance of the measure object + according to their type. See also definitions in clause 8.2 of + ETSI GS NFV-IFA 031. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance for which performance information is requested to be + collected. May be present if a sub-object is defined in + clause 8.2 of ETSI GS NFV-IFA 031 for the related measured + object type. If this attribute is present, the cardinality of + the "objectInstanceIds" attribute shall be 1. If this + attribute is absent and a sub-object is defined in clause 8.2 + of ETSI GS NFV-IFA 031 for the related measured object type, + measurements will be taken for all sub-object instances of + the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the + specified measured object(s). This attribute’s value + shall contain the related "Measurement Name" values as + defined in clause 8.4 of ETSI GS NFV-IFA 031. At least + one of the two attributes (performance metric or group) + shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer that + it can decompose to individual metrics. This attribute’s + value shall contain the related "Measurement Group" + values as defined in clause 8.4 of ETSI GS NFV-IFA 031. + At least one of the two attributes (performance metric or + group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed collection + period during this reportingPeriod. The reportingPeriod + should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the + collection periods within one reporting period are + reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported + depends on the capability of the producing entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance information. + The unit shall be seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed collection + period during this reportingPeriod. The reportingPeriod + should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the + collection periods within one reporting period are + reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported + depends on the capability of the producing entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + reports: + description: | + Information about available reports collected by this PM job. + type: array + items: + type: object + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: | + Unsigned integer + type: number + required: + - href + - readyTime + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: > + Links to resources representing the measured object + instances for which performance information is collected. + Shall be present if the measured object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceIds + - criteria + - _links + pm_job.delete.204: + description: | + 204 NO CONTENT + Shall be returned when the PM job has been deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + pm_job.report.get.200: + description: > + 200 OK + + Shall be returned when information of an individual performance report + has been read successfully. + + The response body shall contain a representation of the "Individual + performance report" resource, as defined in clause 6.6.2.10. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type defines the format of a performance report provided by + the NFV-MANO functional entity to the API consumer as a result of + collecting performance information as part of a PM job. + type: object + properties: + entries: + description: > + List of performance information entries. Each performance + report entry is for a given metric of a given object (i.e. + measured object instance) corresponding to the related + measured object types, but can include multiple collected + values. + type: array + items: + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object + type for a measurement is defined in clause 8.2 of ETSI + GS NFV-IFA 031. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + subObjectInstanceId: + 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.. + type: string + performanceMetric: + description: > + Name of the metric collected. This attribute shall + contain the related "Measurement Name" value as defined + in clause 8.4 of ETSI GS NFV-IFA 031. + type: string + performanceValues: + description: | + List of performance values with associated timestamp. + type: array + items: + type: object + properties: + timeStamp: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + value: + description: > + Value of the metric collected. The type of this + attribute shall correspond to the related + "Measurement Unit" as defined in clause 8.4 of + ETSI GS NFV-IFA 031. + context: + 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. + type: object + required: + - timeStamp + - value + minItems: 1 + required: + - objectType + - objectInstanceId + - performanceMetric + - performanceValues + minItems: 1 + required: + - entries + thresholds.post.201: + description: > + 201 CREATED + + Shall be returned when a threshold has been created successfully. + + The response body shall contain a representation of the created + "Individual threshold" resource, as defined in clause 6.6.2.9. + + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the created "Individual threshold" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state operation + occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: '' + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: >- + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA + 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance associated with this threshold. May be present if a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for + the related measured object type. If this attribute is absent + and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA + 031 for the related measured object type, thresholds are set + for all sub-object instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in clause + 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other + attributes are present in the data structure. Permitted + values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. + The definition of additional threshold types is left for + future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + object: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + thresholds.get.200: + description: > + 200 OK + + Shall be returned when information about zero or more thresholds has + been queried successfully. + + The response body shall contain in an array the representations of zero + or more thresholds, as defined in clause 6.6.2.9. + + If the "filter" URI parameter was supplied in the request, the data in + the response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: '' + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: >- + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS + NFV-IFA 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured + object instance associated with this threshold. May be + present if a sub-object is defined in clause 8.2 of ETSI GS + NFV-IFA 031 for the related measured object type. If this + attribute is absent and a sub-object is defined in clause + 8.2 of ETSI GS NFV-IFA 031 for the related measured object + type, thresholds are set for all sub-object instances of + the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in clause + 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other + attributes are present in the data structure. Permitted + values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. + The definition of additional threshold types is left + for future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + object: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + thresholds.get.400: + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + threshold.get.200: + description: > + 200 OK + + Shall be returned when information about an individual threshold has + been read successfully. + + The response body shall contain a representation of the threshold, as + defined in clause 6.6.2.9. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: '' + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectType: + description: >- + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA + 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance associated with this threshold. May be present if a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for + the related measured object type. If this attribute is absent + and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA + 031 for the related measured object type, thresholds are set + for all sub-object instances of the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in clause + 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other + attributes are present in the data structure. Permitted + values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. + The definition of additional threshold types is left for + future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + _links: + description: | + Links for this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + object: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - objectType + - objectInstanceId + - subjObjectInstanceIds + - criteria + - _links + threshold.delete.204: + description: | + 204 NO CONTENT + Shall be returned when the threshold has been deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + subscriptions.post.201: + description: > + 201 CREATED + + Shall be returned when the subscription has been created successfully. + + A representation of the created subscription resource shall be returned + in the response body, as defined in clause 6.6.2.3. + + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the created "Individual subscription" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state operation + occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: | + This type represents a subscription. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a filter that can be used to subscribe + for notifications related to performance management events. + 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" + are alternatives to reference to NFV-MANO services in + a filter. They should not be used together in the + same filter instance, but one alternative should be + chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + The URI of the endpoint to send the notification to. + type: object + properties: + links: + description: | + String formatted according to IETF RFC 3986. + type: string + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - links + - self + required: + - id + - callbackUri + subscriptions.post.303: + description: > + 303 SEE OTHER + + Shall be returned when a subscription with the same callbackURI and the + same filter already exists and the policy of the NFV-MANO functional + entity is to not create redundant subscriptions. + + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing "Individual subscription" resource. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state operation + occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + subscriptions.get.200: + description: > + Shall be returned when the list of subscriptions has been queried + successfully. + + The response body shall contain in an array the representations of all + active subscriptions of the functional block that invokes the method, + i.e. zero or more representations of PM subscriptions as defined in + clause 6.6.2.3. + + If the "filter" URI parameter was supplied in the request, the data in + the response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: | + This type represents a subscription. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a filter that can be used to subscribe + for notifications related to performance management + events. 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their associated + managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference to + NFV-MANO services in a filter. They should not be + used together in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed in + this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed in + this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + The URI of the endpoint to send the notification to. + type: object + properties: + links: + description: | + String formatted according to IETF RFC 3986. + type: string + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - links + - self + required: + - id + - callbackUri + subscriptions.get.400: + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + subscription.get.200: + description: > + 200 OK + + Shall be returned when the subscription has been read successfully. + + The response body shall contain a representation of the "Individual + subscription" resource, as defined in clause 6.6.2.3. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a subscription. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a filter that can be used to subscribe + for notifications related to performance management events. + 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" + are alternatives to reference to NFV-MANO services in + a filter. They should not be used together in the + same filter instance, but one alternative should be + chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + The URI of the endpoint to send the notification to. + type: object + properties: + links: + description: | + String formatted according to IETF RFC 3986. + type: string + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - links + - self + required: + - id + - callbackUri + subscription.delete.204: + description: > + 204 NO CONTENT + + Shall be returned when the "Individual subscription" resource has been + deleted successfully. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + parameters: + filter.PmJob: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI GS + NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this parameter + as part of the URI query string. The API consumer may supply this + parameter. + + All attribute names that appear in the PmJob and in data types + referenced from it shall be supported by the NFV-MANO functional entity + in the expression. + in: query + required: false + schema: + type: string + filter.Threshold: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI GS + NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this parameter + as part of the URI query string. The API consumer may supply this + parameter. + + All attribute names that appear in the Threshold and in data types + referenced from it shall be supported by the NFV-MANO functional entity + in the expression. + in: query + required: false + schema: + type: string + filter.PmSubscription: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI GS + NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this parameter + as part of the URI query string. The API consumer may supply this + parameter. + + All attribute names that appear in the PmSubscription and in data + types referenced from it shall be supported by the NFV-MANO functional + entity in the expression. + in: query + required: false + schema: + type: string + exclude_default.PmJob: + name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the PmJob structure in + the response body if this parameter is provided, or none of the + parameters "all_fields," "fields", "exclude_fields", "exclude_default" + are provided: - none + in: query + required: false + schema: + type: string + subscriptionId: + name: subscriptionId + in: path + description: Identifier of the subscription + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + pmJobId: + name: pmJobId + in: path + description: Identifier of the PM Job + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + reportId: + name: reportId + in: path + description: Identifier of the PM report + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + thresholdId: + name: thresholdId + in: path + description: Identifier of the PM threshold + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + requestBodies: + CreatePMJobRequest: + description: | + PM job creation request. + content: + application/json: + schema: + description: | + This type represents a request to create a PM job. + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA + 031. + type: string + objectInstanceIds: + description: > + Identifiers of the measured object instance for which + performance information is requested to be collected. This + attribute shall contain the identifier of the instance of the + measure object according to their type. See also definitions + in clause 8.2 of ETSI GS NFV-IFA 031. If more than one + identifier is provided, values shall all refer to measured + object instances of the same type, for which the same criteria + is then applicable. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + minItems: 1 + subObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance for which performance information is requested to be + collected. May be present if a sub-object is defined in + clause 8.2 of ETSI GS NFV-IFA 031 for the related measured + object type. If this attribute is present, the cardinality of + the "objectInstanceIds" attribute shall be 1. If this + attribute is absent and a sub-object is defined in clause 8.2 + of ETSI GS NFV-IFA 031 for the related measured object type, + measurements will be taken for all sub-object instances of + the measured object instance. + 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.. + type: string + criteria: + description: | + This type represents collection criteria for PM jobs. + type: object + properties: + performanceMetric: + description: > + This defines the types of performance metrics for the + specified measured object(s). This attribute’s value + shall contain the related "Measurement Name" values as + defined in clause 8.4 of ETSI GS NFV-IFA 031. At least + one of the two attributes (performance metric or group) + shall be present. + type: array + items: + type: string + performanceMetricGroup: + description: > + Group of performance metrics. A metric group is a + pre-defined list of metrics, known to the producer that + it can decompose to individual metrics. This attribute’s + value shall contain the related "Measurement Group" + values as defined in clause 8.4 of ETSI GS NFV-IFA 031. + At least one of the two attributes (performance metric or + group) shall be present. + type: array + items: + type: string + collectionPeriod: + description: > + Specifies the periodicity at which the producer will + collect performance information. The unit shall be + seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed collection + period during this reportingPeriod. The reportingPeriod + should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the + collection periods within one reporting period are + reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported + depends on the capability of the producing entity. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer will + report to the API consumer about performance information. + The unit shall be seconds. + + At the end of each reportingPeriod, the producer will + inform the API consumer about availability of the + performance data collected for each completed collection + period during this reportingPeriod. The reportingPeriod + should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the + collection periods within one reporting period are + reported together. + + In particular when choosing short collection and reporting + periods, the number of PM jobs that can be supported + depends on the capability of the producing entity. + type: integer + reportingBoundary: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + required: + - collectionPeriod + - reportingPeriod + required: + - objectType + - objectInstanceIds + - criteria + required: true + CreateThesholdRequest: + description: | + Request parameters to create a threshold. + content: + application/json: + schema: + description: | + This type represents a request to create a threshold. + type: object + properties: + objectType: + description: > + Type of measured object. The applicable measured object type + for a measurement is defined in clause 8.2 of ETSI GS NFV-IFA + 031. + type: string + objectInstanceId: + description: | + An identifier with the intention of being globally unique. + type: string + subjObjectInstanceIds: + description: > + Identifiers of the sub-object instances of the measured object + instance associated with this threshold. May be present if a + sub-object is defined in clause 8.2 of ETSI GS NFV-IFA 031 for + the related measured object type. If this attribute is absent + and a sub-object is defined in clause 8.2 of ETSI GS NFV-IFA + 031 for the related measured object type, thresholds will be + set for all sub-object instances of the measured object + instance. + 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.. + type: string + criteria: + description: | + This type represents criteria that define a threshold. + type: object + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold. This attribute’s value shall contain the + related "Measurement Name" values as defined in clause + 8.4 of ETSI GS NFV-IFA 031 + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other + attributes are present in the data structure. Permitted + values: + - SIMPLE: Single-valued static threshold + + In the present document, simple thresholds are defined. + The definition of additional threshold types is left for + future specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + properties: + thresholdValue: + description: | + A number defined in IETF RFC 8259. + type: number + hysteresis: + description: | + A number defined in IETF RFC 8259. + type: number + required: + - thresholdValue + - hysteresis + required: + - performanceMetric + - thresholdType + required: + - objectType + - objectInstanceId + - criteria + required: true + CreateSubscriptionRequest: + description: | + Details of the subscription to be created. + content: + application/json: + schema: + description: | + This type represents a subscription request. + type: object + properties: + filter: + description: > + This type represents a filter that can be used to subscribe + for notifications related to performance management events. + 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). + type: object + properties: + pmSubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" + are alternatives to reference to NFV-MANO services in + a filter. They should not be used together in the + same filter instance, but one alternative should be + chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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. + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which + the API consumer is willing to accept when receiving a + notification. Permitted values: * BASIC: In every HTTP + request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. Shall be + absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information + has not been provisioned out of band. Shall be absent + otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been provisioned + out of band. The clientId and clientPassword passed in + a subscription shall not be the same as the clientId + and clientPassword that are used to obtain + authorization for API requests. Client credentials may + differ between subscriptions. The value of + clientPassword should be generated by a random + process. + type: string + clientPassword: + description: > + Client password to be used in the access token request + of the OAuth 2.0 client credentials grant type. Shall + be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a + subscription shall not be the same as the clientId and + clientPassword that are used to obtain authorization + for API requests. Client credentials may differ + between subscriptions. The value of clientPassword + should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - callbackUri + required: true + diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec index 7df17c107..d90dc3046 100644 --- a/libspecs/Easter.libspec +++ b/libspecs/Easter.libspec @@ -1,5 +1,5 @@ - + global yes diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec index 1ca259b8d..b12ed7c4b 100644 --- a/libspecs/Reserved.libspec +++ b/libspecs/Reserved.libspec @@ -1,5 +1,5 @@ - + global yes -- GitLab From a2d67d298b85fc4f1abbc0aebc8f9514be1cf326 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 17 Aug 2020 12:27:46 +0500 Subject: [PATCH 037/116] Added Test Cases for ApiVersion.robot --- .../ApiVersion.robot | 211 ++++++++++++++++++ .../environment/variables.txt | 4 +- libspecs/Easter.libspec | 2 +- libspecs/Reserved.libspec | 2 +- 4 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot diff --git a/SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot b/SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot new file mode 100644 index 000000000..104a87b26 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot @@ -0,0 +1,211 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library DependencyLibrary +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +POST API Version - Method not implemented + [Documentation] Test ID: 8.3.2.9.1 + ... Test title: POST API version - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version + [Documentation] Test ID: 8.3.2.9.2 + ... Test title: GET API Version + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version - Method not implemented + [Documentation] Test ID: 8.3.2.9.3 + ... Test title: PUT API Version - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version - Method not implemented + [Documentation] Test ID: 8.3.2.9.4 + ... Test title: PATCH API Version - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version - Method not implemented + [Documentation] Test ID: 8.3.2.9.5 + ... Test title: DELETE API Version - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +POST API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.2.9.6 + ... Test title: POST API version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version with apiMajorVerion + [Documentation] Test ID: 8.3.2.9.7 + ... Test title: GET API Version with apiMajorVerion + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.2.9.8 + ... Test title: PUT API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.2.9.9 + ... Test title: PATCH API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.2.9.10 + ... Test title: DELETE API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +*** Keywords *** +POST API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + ${schema} = Catenate ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt index 28bd7e49e..b0859eb29 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt @@ -30,4 +30,6 @@ ${polling_interval} 10 sec ${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar -${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa \ No newline at end of file +${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa + +${response} \ No newline at end of file diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec index d90dc3046..f3e45a830 100644 --- a/libspecs/Easter.libspec +++ b/libspecs/Easter.libspec @@ -1,5 +1,5 @@ - + global yes diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec index b12ed7c4b..8e7ea8957 100644 --- a/libspecs/Reserved.libspec +++ b/libspecs/Reserved.libspec @@ -1,5 +1,5 @@ - + global yes -- GitLab From 5638272c7acbd152505598c7598175b1c8baa3b5 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 20 Aug 2020 10:41:07 +0500 Subject: [PATCH 038/116] fixed issues in PMJobs --- .../PMJobs.robot | 104 ++++++++++++------ libspecs/Easter.libspec | 2 +- libspecs/Reserved.libspec | 2 +- 3 files changed, 70 insertions(+), 38 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot index 3b28a5740..fc68c61ea 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot @@ -8,8 +8,22 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** -GET all NFV-MANO Performance Monitoring Jobs +Create new NFV-MANO Performance Monitoring Job [Documentation] Test ID: 8.3.2.1.1 + ... Test title: Create a new NFV-MANO Performance Monitoring Job + ... Test objective: The objective is to test the creation of a new NFV-MANO performance monitoring job and perform the JSON schema validation of the returned job data structure + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is successfully created on the NFV-MANO + Send Post Request Create new NFV-MANO Performance Monitoring Job + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PmJob + Check Postcondition PmJob Exists + +GET all NFV-MANO Performance Monitoring Jobs + [Documentation] Test ID: 8.3.2.1.2 ... Test title: GET all NFV-MANO Performance Monitoring Jobs ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance monitoring jobs and perform a JSON schema validation ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -22,7 +36,7 @@ GET all NFV-MANO Performance Monitoring Jobs Check HTTP Response Body Json Schema Is PmJobs GET NFV-MANO Performance Monitoring Jobs with attribute-based filter - [Documentation] Test ID: 8.3.2.1.2 + [Documentation] Test ID: 8.3.2.1.3 ... Test title: GET all NFV-MANO Performance Monitoring Jobs with attribute-based filter ... Test objective: The objective is to test the retrieval of NFV-MANO performance monitoring jobs using attribute-based filter, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -35,7 +49,7 @@ GET NFV-MANO Performance Monitoring Jobs with attribute-based filter Check HTTP Response Body Json Schema Is PmJobs GET all NFV-MANO Performance Monitoring Jobs with all_fields attribute selector - [Documentation] Test ID: 8.3.2.1.3 + [Documentation] Test ID: 8.3.2.1.4 ... Test title: GET all NFV-MANO Performance Monitoring Jobs with all_fields attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs all_fields attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -48,7 +62,7 @@ GET all NFV-MANO Performance Monitoring Jobs with all_fields attribute selector Check HTTP Response Body Json Schema Is PmJobs GET all NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector - [Documentation] Test ID: 8.3.2.1.4 + [Documentation] Test ID: 8.3.2.1.5 ... Test title: GET all NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs exclude_default attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -61,7 +75,7 @@ GET all NFV-MANO Performance Monitoring Jobs with exclude_default attribute sele Check HTTP Response Body Json Schema Is PmJobs GET all NFV-MANO Performance Monitoring Jobs with fields attribute selector - [Documentation] Test ID: 8.3.2.1.5 + [Documentation] Test ID: 8.3.2.1.6 ... Test title: GET all NFV-MANO Performance Monitoring Jobs with fields attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs fields attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -74,7 +88,7 @@ GET all NFV-MANO Performance Monitoring Jobs with fields attribute selector Check HTTP Response Body Json Schema Is PmJobs GET all NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector - [Documentation] Test ID: 8.3.2.1.6 + [Documentation] Test ID: 8.3.2.1.7 ... Test title: GET all NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs exclude_fields attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -87,7 +101,7 @@ GET all NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selec Check HTTP Response Body Json Schema Is PmJobs GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter - [Documentation] Test ID: 8.3.2.1.7 + [Documentation] Test ID: 8.3.2.1.8 ... Test title: GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of NFV-MANO performance monitoring jobs fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -99,34 +113,47 @@ GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint - [Documentation] Test ID: 8.3.2.1.8 +GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector + [Documentation] Test ID: 8.3.2.1.9 ... Test title: GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint - ... Test objective: The objective is to test that the retrieval of NFV-MANO performance monitoring jobs fails when using invalid resource endpoint + ... Test objective: The objective is to test that the retrieval of NFV-MANO performance monitoring jobs fails with invalid attribute selector ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint - Check HTTP Response Status Code Is 404 - -Create new NFV-MANO Performance Monitoring Job - [Documentation] Test ID: 8.3.2.1.9 - ... Test title: Create a new NFV-MANO Performance Monitoring Job - ... Test objective: The objective is to test the creation of a new NFV-MANO performance monitoring job and perform the JSON schema validation of the returned job data structure - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector + Check HTTP Response Status Code Is 400 + +GET information about multiple Performance Monitoring Jobs to get Paged Response + [Documentation] Test ID: 8.3.2.1.10 + ... Test title: GET information about multiple Performance Monitoring Jobs to get Paged Response + ... Test objective: The objective is to retrieve information about the performance monitoring jobs to get paged response + ... Pre-conditions: + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: The NFV-MANO Performance Job is successfully created on the NFV-MANO - Send Post Request Create new NFV-MANO Performance Monitoring Job - Check HTTP Response Status Code Is 201 - Check HTTP Response Body Json Schema Is PmJob - Check Postcondition PmJob Exists + ... Applicability: + ... Post-Conditions: + GET all NFV-MANO Performance Monitoring Jobs + Check HTTP Response Status Code Is 200 + Check LINK in Header + +GET information about multiple Performance Monitoring Jobs for Bad Request Response too big + [Documentation] Test ID: 8.3.2.1.11 + ... Test title: GET information about multiple Performance Monitoring Jobs for Bad Request Response too big + ... Test objective: The objective is to test that GET method fail retrieving status information about performance monitoring jobs when Response is too big, and perform the JSON schema validation of the failed operation HTTP response + ... Pre-conditions: + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET all NFV-MANO Performance Monitoring Jobs + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented - [Documentation] Test ID: 8.3.2.1.10 + [Documentation] Test ID: 8.3.2.1.12 ... Test title: PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -138,7 +165,7 @@ PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented Check HTTP Response Status Code Is 405 PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) - [Documentation] Test ID: 8.3.2.1.11 + [Documentation] Test ID: 8.3.2.1.13 ... Test title: PATCH all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -150,7 +177,7 @@ PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) Check HTTP Response Status Code Is 405 DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented - [Documentation] Test ID: 8.3.2.1.12 + [Documentation] Test ID: 8.3.2.1.14 ... Test title: DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -221,13 +248,14 @@ GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter ${output}= Output response Set Suite Variable ${response} ${output} -GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint - Log Trying to perform a GET on a erroneous URI - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_job # wrong URI /pm_job instead of /pm_jobs - ${output}= Output response - Set Suite Variable ${response} ${output} +GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector + Log Query VNF The GET method queries information about multiple VNF instances. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances?fields=wrong_field + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} Send Post Request Create new NFV-MANO Performance Monitoring Job Log Creating a new PM Job @@ -293,4 +321,8 @@ Check HTTP Response Body Json Schema Is Check Postcondition NFV-MANO Performance Monitoring Jobs Exist Log Checking that Pm Job still exists - GET all NFV-MANO Performance Monitoring Jobs \ No newline at end of file + GET all NFV-MANO Performance Monitoring Jobs + +Check LINK in Header + ${linkURL}= Get Value From Json ${response['headers']} $..Link + Should Not Be Empty ${linkURL} \ No newline at end of file diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec index f3e45a830..4dbffca8f 100644 --- a/libspecs/Easter.libspec +++ b/libspecs/Easter.libspec @@ -1,5 +1,5 @@ - + global yes diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec index 8e7ea8957..6e8618267 100644 --- a/libspecs/Reserved.libspec +++ b/libspecs/Reserved.libspec @@ -1,5 +1,5 @@ - + global yes -- GitLab From 9e5523350e4034cbecbb4c6330ece15753756c55 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 20 Aug 2020 10:51:43 +0500 Subject: [PATCH 039/116] change test cases allignment and fix minor issues --- .../IndividualPmJob.robot | 86 +++++++++---------- .../IndividualReport.robot | 30 +++---- .../IndividualThreshold.robot | 84 +++++++++--------- .../Thresholds.robot | 56 ++++++------ 4 files changed, 128 insertions(+), 128 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot index 0d4415b42..94e7cffff 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot @@ -6,8 +6,21 @@ Resource environment/IndividualPmJob.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false *** Test Cases *** -GET individual NFV-MANO Performance Job +POST Individual NFV-MANO Performance Job - Method not implemented [Documentation] Test ID: 8.3.2.2.1 + ... Test title: POST Individual NFV-MANO Performance Job - method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO Performance Monitoring Job + ... Pre-conditions: A NFV-MANO instance is instantiated + ... Reference: clause 6.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is not created on the NFV-MANO + Send Post request for individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Performance Job is not Created + +GET individual NFV-MANO Performance Job + [Documentation] Test ID: 8.3.2.2.2 ... Test title: Get individual NFV-MANO Performance Job ... Test objective: The objective is to test the retrieval of an individual performance monitoring job and perform a JSON schema and content validation of the collected job data structure ... Pre-conditions: A NFV-MANO instance is instantiated. @@ -21,7 +34,7 @@ GET individual NFV-MANO Performance Job Check HTTP Response Body Pm Job Identifier matches the requested Pm Job GET individual NFV-MANO Performance Job with invalid resource identifier - [Documentation] Test ID: 8.3.2.2.2 + [Documentation] Test ID: 8.3.2.2.3 ... Test title: Get individual NFV-MANO Performance Job with invalid resource identifier ... Test objective: The objective is to test that the retrieval of an individual performance monitoring job fails when using an invalid resource identifier, and perform the JSON schema validation of the failed operation HTTP response ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -32,47 +45,9 @@ GET individual NFV-MANO Performance Job with invalid resource identifier GET individual NFV-MANO Performance Job with invalid resource identifier Check HTTP Response Status Code Is 404 Check HTTP Response Body Json Schema Is ProblemDetails - -DELETE Individual NFV-MANO Performance Job - [Documentation] Test ID: 8.3.2.2.3 - ... Test title: Delete Individual NFV-MANO Performance Job - ... Test objective: The objective is to test the deletion of an individual performance monitoring job - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: The NFV-MANO Performance Job is no more available. - Send Delete request for individual NFV-MANO Performance Job - Check HTTP Response Status Code Is 204 - Check Postcondition NFV-MANO Pm Job is Deleted - -DELETE Individual NFV-MANO Performance Job with invalid resource identifier - [Documentation] Test ID: 8.3.2.2.4 - ... Test title: Delete individual NFV-MANO Performance Job with invalid resource identifier - ... Test objective: The objective is to test that the deletion of an individual NFV-MANO performance monitoring job fails when using an invalid resource identifier - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: none - Send Delete request for individual NFV-MANO Performance Job with invalid resource identifier - Check HTTP Response Status Code Is 404 - -POST Individual NFV-MANO Performance Job - Method not implemented - [Documentation] Test ID: 8.3.2.2.5 - ... Test title: POST Individual NFV-MANO Performance Job - method not implemented - ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO Performance Monitoring Job - ... Pre-conditions: A NFV-MANO instance is instantiated - ... Reference: clause 6.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: The NFV-MANO Performance Job is not created on the NFV-MANO - Send Post request for individual NFV-MANO Performance Job - Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Performance Job is not Created - + PUT Individual NFV-MANO Performance Job - Method not implemented - [Documentation] Test ID: 8.3.2.2.6 + [Documentation] Test ID: 8.3.2.2.4 ... Test title: PUT Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing NFV-MANO Performance Monitoring Job ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -85,7 +60,7 @@ PUT Individual NFV-MANO Performance Job - Method not implemented Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) PATCH Individual NFV-MANO Performance Job - Method not implemented - [Documentation] Test ID: 8.3.2.2.7 + [Documentation] Test ID: 8.3.2.2.5 ... Test title: PATCH Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new NFV-MANO Performance Monitoring Job ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -96,6 +71,31 @@ PATCH Individual NFV-MANO Performance Job - Method not implemented Send Patch request for individual NFV-MANO Performance Job Check HTTP Response Status Code Is 405 Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) + +DELETE Individual NFV-MANO Performance Job + [Documentation] Test ID: 8.3.2.2.6 + ... Test title: Delete Individual NFV-MANO Performance Job + ... Test objective: The objective is to test the deletion of an individual performance monitoring job + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Job is no more available. + Send Delete request for individual NFV-MANO Performance Job + Check HTTP Response Status Code Is 204 + Check Postcondition NFV-MANO Pm Job is Deleted + +DELETE Individual NFV-MANO Performance Job with invalid resource identifier + [Documentation] Test ID: 8.3.2.2.7 + ... Test title: Delete individual NFV-MANO Performance Job with invalid resource identifier + ... Test objective: The objective is to test that the deletion of an individual NFV-MANO performance monitoring job fails when using an invalid resource identifier + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual NFV-MANO Performance Job with invalid resource identifier + Check HTTP Response Status Code Is 404 *** Keywords *** GET individual NFV-MANO Performance Job diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot index d0c7d0234..4f0a2a2f7 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot @@ -6,8 +6,21 @@ Library JSONLibrary Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false *** Test Cases *** -Get Individual Performance Report +POST Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.1 + ... Test title: POST Individual Performance Report - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO performance report within a monitoring job. + ... Pre-conditions: A NFV-MANO instance is instantiated. + ... Reference: clause 6.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO performance report is not created. + Send Post request for Individual Performance Report + Check HTTP Response Status Code Is 405 + Check Postcondition NFV-MANO Individual Performance Report is not Created + +Get Individual Performance Report + [Documentation] Test ID: 8.3.2.3.2 ... Test title: Get Individual Performance Report ... Test objective: The objective is to test the retrieval of an individual performance report associated to a monitoring job and perform a JSON schema validation of the collected report data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. @@ -20,7 +33,7 @@ Get Individual Performance Report Check HTTP Response Body Json Schema Is PerformanceReport Get Individual Performance Report with invalid resource endpoint - [Documentation] Test ID: 8.3.2.3.2 + [Documentation] Test ID: 8.3.2.3.3 ... Test title: Get Individual Performance Report with invalid resource endpoint ... Test objective: The objective is to test that the retrieval of an individual NFV-MANO performance report associated to a monitoring job fails when using an invalid resource endpoint. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. @@ -31,19 +44,6 @@ Get Individual Performance Report with invalid resource endpoint Get Individual Performance Report with invalid resource endpoint Check HTTP Response Status Code Is 404 -POST Individual Performance Report - Method not implemented - [Documentation] Test ID: 8.3.2.3.3 - ... Test title: POST Individual Performance Report - Method not implemented - ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO performance report within a monitoring job. - ... Pre-conditions: A NFV-MANO instance is instantiated. - ... Reference: clause 6.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: The NFV-MANO performance report is not created. - Send Post request for Individual Performance Report - Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Individual Performance Report is not Created - PUT Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.4 ... Test title: PUT Individual Performance Report - Method not implemented diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot index a228d9a17..0f2911c03 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot @@ -7,8 +7,21 @@ Library OperatingSystem Resource environment/individualThresholds.txt *** Test Cases *** -GET Individual Threshold +POST Individual Threshold - Method not implemented [Documentation] Test ID: 8.3.2.5.1 + ... Test title: POST Individual Threshold - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Threshold + ... Pre-conditions: A NFV-MANO instance is instantiated + ... Reference: clause 6.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Threshold is not created on the NFV-MANO + Send Post request for individual Performance Threshold + Check HTTP Response Status Code Is 405 + Check Postcondition Performance Threshold is not Created + +GET Individual Threshold + [Documentation] Test ID: 8.3.2.5.2 ... Test title: GET Individual Threshold ... Test objective: The objective is to test the retrieval of an individual NFV-MANO performance threshold and perform a JSON schema and content validation of the collected threshold data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. @@ -22,7 +35,7 @@ GET Individual Threshold Check HTTP Response Body Threshold Identifier matches the requested Threshold GET Individual Threshold with invalid resource identifier - [Documentation] Test ID: 8.3.2.5.2 + [Documentation] Test ID: 8.3.2.5.3 ... Test title: GET Individual Threshold with invalid resource identifier ... Test objective: The objective is to test that the retrieval of an individual performance threshold fails when using an invalid resource identifier ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance jobs are set. @@ -33,46 +46,8 @@ GET Individual Threshold with invalid resource identifier GET individual Performance Threshold with invalid resource identifier Check HTTP Response Status Code Is 404 -DELETE Individual Threshold - [Documentation] Test ID: 8.3.2.5.3 - ... Test title: DELETE Individual Threshold - ... Test objective: The objective is to test the deletion of an individual performance threshold - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. - ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: The Performance Threshold is not available anymore in the NFV-MANO - Send Delete request for individual Performance Threshold - Check HTTP Response Status Code Is 204 - Check Postcondition Performance Threshold is Deleted - -DELETE Individual Threshold with invalid resource identifier - [Documentation] Test ID: 8.3.2.5.4 - ... Test title: DELETE Individual Threshold with invalid resource identifier - ... Test objective: The objective is to test the deletion of an individual performance threshold - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. - ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: none - Send Delete request for individual Performance Threshold with invalid resource identifier - Check HTTP Response Status Code Is 404 - -POST Individual Threshold - Method not implemented - [Documentation] Test ID: 8.3.2.5.5 - ... Test title: POST Individual Threshold - Method not implemented - ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Threshold - ... Pre-conditions: A NFV-MANO instance is instantiated - ... Reference: clause 6.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: The Performance Threshold is not created on the NFV-MANO - Send Post request for individual Performance Threshold - Check HTTP Response Status Code Is 405 - Check Postcondition Performance Threshold is not Created - PUT Individual Threshold - Method not implemented - [Documentation] Test ID: 8.3.2.5.6 + [Documentation] Test ID: 8.3.2.5.4 ... Test title: PUT Individual Threshold - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing Performance threshold ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. @@ -85,7 +60,7 @@ PUT Individual Threshold - Method not implemented Check Postcondition Performance Threshold is Unmodified (Implicit) PATCH Individual Threshold - Method not implemented - [Documentation] Test ID: 8.3.2.5.7 + [Documentation] Test ID: 8.3.2.5.5 ... Test title: PATCH Individual Threshold - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing Performance threshold ... Pre-conditions: A instance is instantiated. One or more performance thresholds are set. @@ -96,6 +71,31 @@ PATCH Individual Threshold - Method not implemented Send Patch request for individual Performance Threshold Check HTTP Response Status Code Is 405 Check Postcondition Performance Threshold is Unmodified (Implicit) + +DELETE Individual Threshold + [Documentation] Test ID: 8.3.2.5.6 + ... Test title: DELETE Individual Threshold + ... Test objective: The objective is to test the deletion of an individual performance threshold + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. + ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Performance Threshold is not available anymore in the NFV-MANO + Send Delete request for individual Performance Threshold + Check HTTP Response Status Code Is 204 + Check Postcondition Performance Threshold is Deleted + +DELETE Individual Threshold with invalid resource identifier + [Documentation] Test ID: 8.3.2.5.7 + ... Test title: DELETE Individual Threshold with invalid resource identifier + ... Test objective: The objective is to test the deletion of an individual performance threshold + ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. + ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual Performance Threshold with invalid resource identifier + Check HTTP Response Status Code Is 404 *** Keywords *** GET Individual Performance Threshold diff --git a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot index a218a2155..2a0e962d4 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot @@ -7,8 +7,23 @@ Resource environment/thresholds.txt Library OperatingSystem *** Test Cases *** -GET All Performance Thresholds +Create new Performance Threshold [Documentation] Test ID: 8.3.2.4.1 + ... Test title: Create new Performance Threshold + ... Test objective: The objective is to test the creation of a new NFV-MANO performance threshold and perform the JSON schema validation of the returned threshold data structure. + ... Pre-conditions: A NFV-MANO instance is instantiated. + ... Reference: clause 6.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO Performance Threshold is successfully created on the NFV-MANO + Send Post Request Create new Performance Threshold + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is Threshold + Check HTTP Response Header Contains Location + Check Postcondition Threshold Exists + +GET All Performance Thresholds + [Documentation] Test ID: 8.3.2.4.2 ... Test title: GET All Performance Thresholds ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance thresholds and perform a JSON schema validation of the collected thresholds data structure. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. @@ -21,7 +36,7 @@ GET All Performance Thresholds Check HTTP Response Body Json Schema Is Thresholds GET Performance Thresholds with attribute-based filter - [Documentation] Test ID: 8.3.2.4.2 + [Documentation] Test ID: 8.3.2.4.3 ... Test title: GET Performance Thresholds with attribute-based filter ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance thresholds when using attribute-based filters, perform a JSON schema validation of the collected thresholds data structure, and verify that the retrieved information matches the issued attribute-based filter ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. @@ -35,20 +50,20 @@ GET Performance Thresholds with attribute-based filter Check HTTP Response Body Thresholds match the requested attribute-based filter GET Performance Threshold with Paged Response - [Documentation] Test ID: 8.3.2.4.3 + [Documentation] Test ID: 8.3.2.4.4 ... Test title: GET Performance Threshold with Paged Response ... Test objective: The objective is to query information about NFV-MANO Performance Thresholds to get Paged Response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET all Performance Thresholds Check HTTP Response Status Code Is 200 Check LINK in Header GET Performance Thresholds - Invalid attribute-based filter - [Documentation] Test ID: 8.3.2.4.4 + [Documentation] Test ID: 8.3.2.4.5 ... Test title: GET Performance Thresholds - Invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of NFV-MANO performance thresholds fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. @@ -61,35 +76,20 @@ GET Performance Thresholds - Invalid attribute-based filter Check HTTP Response Body Json Schema Is ProblemDetails GET Performance Threshold - Bad Request Response too Big - [Documentation] Test ID: 8.3.2.4.5 + [Documentation] Test ID: 8.3.2.4.6 ... Test title: GET Performance Threshold - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of NFV-MANO performance thresholds fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET all Performance Thresholds Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails - -Create new Performance Threshold - [Documentation] Test ID: 8.3.2.4.6 - ... Test title: Create new Performance Threshold - ... Test objective: The objective is to test the creation of a new NFV-MANO performance threshold and perform the JSON schema validation of the returned threshold data structure. - ... Pre-conditions: A NFV-MANO instance is instantiated. - ... Reference: clause 6.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: The NFV-MANO Performance Threshold is successfully created on the NFV-MANO - Send Post Request Create new Performance Threshold - Check HTTP Response Status Code Is 201 - Check HTTP Response Body Json Schema Is Threshold - Check HTTP Response Header Contains Location - Check Postcondition Threshold Exists - + PUT Performance Thresholds - Method not implemented - [Documentation] Test ID: 8.3.2.4.6 + [Documentation] Test ID: 8.3.2.4.7 ... Test title: PUT Performance Thresholds - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Thresholds ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. @@ -101,7 +101,7 @@ PUT Performance Thresholds - Method not implemented Check HTTP Response Status Code Is 405 PATCH Performance Thresholds - Method not implemented - [Documentation] Test ID: 8.3.2.4.7 + [Documentation] Test ID: 8.3.2.4.8 ... Test title: PATCH Performance Thresholds - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify NFV-MANO Performance Thresholds ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. @@ -113,7 +113,7 @@ PATCH Performance Thresholds - Method not implemented Check HTTP Response Status Code Is 405 DELETE Performance Thresholds - Method not implemented - [Documentation] Test ID: 8.3.2.4.8 + [Documentation] Test ID: 8.3.2.4.9 ... Test title: DELETE Performance Thresholds - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Thresholds ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. -- GitLab From 08e8d76ab34c27754fbb96ea8df82386ec44b659 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 3 Sep 2020 09:46:45 +0200 Subject: [PATCH 040/116] updated gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3667399ca..1b6e272e0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ /red.xml build/ dist/ -/libspecs/ +libspecs/ -- GitLab From 1b6f45ddd607a4196f14383c0db44cc1d1100f40 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 08:08:03 +0500 Subject: [PATCH 041/116] added authorization testcases --- .../PMJobs.robot | 70 ++++++++++++++++++- .../environment/variables.txt | 1 + libspecs/Easter.libspec | 2 +- libspecs/Reserved.libspec | 2 +- 4 files changed, 70 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot index fc68c61ea..bb4a28796 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot @@ -151,9 +151,44 @@ GET information about multiple Performance Monitoring Jobs for Bad Request Respo Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails +Get information about multiple Performance Monitoring Jobs with malformed authorization token + [Documentation] Test ID: 8.3.2.1.12 + ... Test title: Get information about multiple Performance Monitoring Jobs with malformed authorization token + ... Test objective: The objective is to test that the retrieval of information about Performance Monitoring Jobs fails when using malformed authorization token + ... Pre-conditions: none + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. + ... Post-Conditions: none + GET Performance Monitoring Jobs with malformed authorization token + Check HTTP Response Status Code Is 400 + +Get information about multiple Performance Monitoring Jobs without authorization token + [Documentation] Test ID: 8.3.2.1.13 + ... Test title: Get information about multiple Performance Monitoring Jobs without authorization token + ... Test objective: The objective is to test that the retrieval of information about Performance Monitoring Jobs fails when omitting the authorization token + ... Pre-conditions: none + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. + ... Post-Conditions: none + GET Performance Monitoring Jobs without authorization token + Check HTTP Response Status Code Is 401 + +GET information about multiple Performance Monitoring Jobs with expired or revoked authorization token + [Documentation] Test ID: 8.3.2.1.14 + ... Test title: GET information about multiple Performance Monitoring Jobs with expired or revoked authorization token + ... Test objective: The objective is to test that the retrieval of information about Performance Monitoring Jobs fails when using expired or revoked authorization token + ... Pre-conditions: One or more Network Service Descriptors are onboarded in the NFVO + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [3] v3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. + ... Post-Conditions: none + GET Performance Monitoring Jobs with expired or revoked authorization token + Check HTTP Response Status Code Is 401 PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented - [Documentation] Test ID: 8.3.2.1.12 + [Documentation] Test ID: 8.3.2.1.15 ... Test title: PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -165,7 +200,7 @@ PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented Check HTTP Response Status Code Is 405 PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) - [Documentation] Test ID: 8.3.2.1.13 + [Documentation] Test ID: 8.3.2.1.16 ... Test title: PATCH all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -177,7 +212,7 @@ PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) Check HTTP Response Status Code Is 405 DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented - [Documentation] Test ID: 8.3.2.1.14 + [Documentation] Test ID: 8.3.2.1.17 ... Test title: DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -197,7 +232,36 @@ GET all NFV-MANO Performance Monitoring Jobs GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${output}= Output response Set Suite Variable ${response} ${output} + +GET Performance Monitoring Jobs with malformed authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} +GET Performance Monitoring Jobs without authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries omitting token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Performance Monitoring Jobs with expired or revoked authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + GET NFV-MANO Performance Monitoring Jobs with attribute-based filter Log Trying to get all PM Jobs present in the NFV-MANO, using filter params Set Headers {"Accept": "${ACCEPT_JSON}"} diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt index b0859eb29..7f2bab92d 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt @@ -6,6 +6,7 @@ ${NFVMANO_SCHEMA} https ${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 ${NEG_AUTHORIZATION} Bearer negativetoken +${BAD_AUTHORIZATION} Bear sometoken ${CONTENT_TYPE_JSON} application/json ${ACCEPT_JSON} application/json diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec index 4dbffca8f..32914eb5e 100644 --- a/libspecs/Easter.libspec +++ b/libspecs/Easter.libspec @@ -1,5 +1,5 @@ - + global yes diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec index 6e8618267..49406f6a9 100644 --- a/libspecs/Reserved.libspec +++ b/libspecs/Reserved.libspec @@ -1,5 +1,5 @@ - + global yes -- GitLab From e7529d2a9ea0738276140c39ee2f647f5059eafa Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 09:04:07 +0500 Subject: [PATCH 042/116] templating, minor bugs fix and new testcases added --- .../IndividualSubscription.robot | 1 - .../PMJobs.robot | 51 ++++++++++++++----- .../Subscriptions.robot | 23 +++++---- .../Thresholds.robot | 17 +++---- .../environment/variables.txt | 4 +- .../jsons/CreatePmJobRequest.json | 12 +++-- .../jsons/CreateThresholdRequest.json | 14 ++--- .../jsons/subscriptions.json | 10 ++-- 8 files changed, 81 insertions(+), 51 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot index 5f51a6a2c..c00a2b6bc 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot @@ -97,7 +97,6 @@ PATCH Individual Performance Subscription - Method not implemented Check HTTP Response Status Code Is 405 Check Postcondition Performance Subscription is Unmodified (Implicit) - *** Keywords *** Check HTTP Response Status Code Is [Arguments] ${expected_status} diff --git a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot index bb4a28796..63793592f 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot @@ -1,4 +1,5 @@ *** Settings *** +Library String Library JSONSchemaLibrary schemas/ Resource environment/variables.txt Resource environment/pmJobs.txt @@ -129,11 +130,11 @@ GET information about multiple Performance Monitoring Jobs to get Paged Response [Documentation] Test ID: 8.3.2.1.10 ... Test title: GET information about multiple Performance Monitoring Jobs to get Paged Response ... Test objective: The objective is to retrieve information about the performance monitoring jobs to get paged response - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET all NFV-MANO Performance Monitoring Jobs Check HTTP Response Status Code Is 200 Check LINK in Header @@ -142,17 +143,30 @@ GET information about multiple Performance Monitoring Jobs for Bad Request Respo [Documentation] Test ID: 8.3.2.1.11 ... Test title: GET information about multiple Performance Monitoring Jobs for Bad Request Response too big ... Test objective: The objective is to test that GET method fail retrieving status information about performance monitoring jobs when Response is too big, and perform the JSON schema validation of the failed operation HTTP response - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET all NFV-MANO Performance Monitoring Jobs Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails + +GET information about multiple Performance Monitoring Jobs with "fields" and "exclude_default" attribute selector + [Documentation] Test ID: 8.3.2.1.12 + ... Test title: GET all NFV-MANO Performance Monitoring Jobs with "fields" and "exclude_default" attribute selector + ... Test objective: The objective is to retrieve all performance monitoring jobs 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO Performance Monitoring Jobs with fields and exclude_default attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJobs Get information about multiple Performance Monitoring Jobs with malformed authorization token - [Documentation] Test ID: 8.3.2.1.12 + [Documentation] Test ID: 8.3.2.1.13 ... Test title: Get information about multiple Performance Monitoring Jobs with malformed authorization token ... Test objective: The objective is to test that the retrieval of information about Performance Monitoring Jobs fails when using malformed authorization token ... Pre-conditions: none @@ -164,7 +178,7 @@ Get information about multiple Performance Monitoring Jobs with malformed author Check HTTP Response Status Code Is 400 Get information about multiple Performance Monitoring Jobs without authorization token - [Documentation] Test ID: 8.3.2.1.13 + [Documentation] Test ID: 8.3.2.1.14 ... Test title: Get information about multiple Performance Monitoring Jobs without authorization token ... Test objective: The objective is to test that the retrieval of information about Performance Monitoring Jobs fails when omitting the authorization token ... Pre-conditions: none @@ -176,7 +190,7 @@ Get information about multiple Performance Monitoring Jobs without authorization Check HTTP Response Status Code Is 401 GET information about multiple Performance Monitoring Jobs with expired or revoked authorization token - [Documentation] Test ID: 8.3.2.1.14 + [Documentation] Test ID: 8.3.2.1.15 ... Test title: GET information about multiple Performance Monitoring Jobs with expired or revoked authorization token ... Test objective: The objective is to test that the retrieval of information about Performance Monitoring Jobs fails when using expired or revoked authorization token ... Pre-conditions: One or more Network Service Descriptors are onboarded in the NFVO @@ -188,7 +202,7 @@ GET information about multiple Performance Monitoring Jobs with expired or revok Check HTTP Response Status Code Is 401 PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented - [Documentation] Test ID: 8.3.2.1.15 + [Documentation] Test ID: 8.3.2.1.16 ... Test title: PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -200,7 +214,7 @@ PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented Check HTTP Response Status Code Is 405 PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) - [Documentation] Test ID: 8.3.2.1.16 + [Documentation] Test ID: 8.3.2.1.17 ... Test title: PATCH all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -212,7 +226,7 @@ PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) Check HTTP Response Status Code Is 405 DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented - [Documentation] Test ID: 8.3.2.1.17 + [Documentation] Test ID: 8.3.2.1.18 ... Test title: DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. @@ -294,6 +308,15 @@ GET NFV-MANO Performance Monitoring Jobs with fields attribute selector GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} + +GET NFV-MANO Performance Monitoring Jobs with fields and exclude_default attribute selector + Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params + Pass Execution If ${FIELD_USAGE} == 0 Skipping test as NFV-MANO is not supporting 'fields' + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs?exclude_default&fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} GET NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector Log Trying to get all NFV-MANO Packages present in the NFV-MANO, using filter params @@ -326,7 +349,9 @@ Send Post Request Create new NFV-MANO Performance Monitoring Job Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body}= Get File jsons/CreatePmJobRequest.json + ${template}= Get File jsons/CreatePmJobRequest.json + ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs ${body} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot index 14b2ffd39..070607c5e 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot @@ -1,4 +1,5 @@ *** Settings *** +Library String Library JSONSchemaLibrary schemas/ Resource environment/variables.txt # Generic Parameters Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false @@ -44,11 +45,11 @@ GET Performance Management Subscriptions with Paged Response ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. ... Reference: clauseclause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get all Performance Subscriptions Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link GET Performance Subscriptions with invalid attribute-based filter [Documentation] Test ID: 8.3.2.6.4 @@ -198,7 +199,7 @@ Check HTTP Response Status Code Is Should Be Equal As Strings ${response['status']} ${expected_status} Log Status code validated -Check LINK in Header +Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} @@ -209,7 +210,6 @@ Check HTTP Response Body Json Schema Is Validate Json ${schema} ${response['body']} Log Json Schema Validation OK - Check HTTP Response Body Is Empty Should Be Empty ${response['body']} Log No json schema is provided. Validation OK @@ -247,8 +247,9 @@ Send Post Request for Performance Subscription Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} - ${body_request}= Get File jsons/subscriptions.json - POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${template}= Get File jsons/subscriptions.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} Run Keyword If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 1 @@ -256,7 +257,8 @@ Send Post Request for Performance Subscription Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription Log Check Response matches subscription - ${body}= Get File jsons/subscriptions.json + ${template}= Get File jsons/subscriptions.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} ${subscription}= evaluate json.loads('''${body}''') json Should Be Equal As Strings ${response['body']['callbackUri']} ${subscription['callbackUri']} @@ -273,8 +275,9 @@ Send Post Request for Duplicated Performance Subscription Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} - ${body_request}= Get File jsons/subscriptions.json - POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${template}= Get File jsons/subscriptions.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot index 2a0e962d4..c0a605ad8 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot @@ -1,4 +1,5 @@ *** Settings *** +Library String Library JSONSchemaLibrary schemas/ Resource environment/variables.txt # Generic Parameters Library JSONLibrary @@ -60,8 +61,8 @@ GET Performance Threshold with Paged Response ... Post-Conditions: none GET all Performance Thresholds Check HTTP Response Status Code Is 200 - Check LINK in Header - + Check HTTP Response Header Contains Link + GET Performance Thresholds - Invalid attribute-based filter [Documentation] Test ID: 8.3.2.4.5 ... Test title: GET Performance Thresholds - Invalid attribute-based filter @@ -155,8 +156,9 @@ Send Post Request Create new Performance Threshold Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} Set Headers {"Accept": "${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} - ${request}= Get File jsons/CreateThresholdRequest.json - POST ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds ${request} + ${template}= Get File jsons/CreateThresholdRequest.json + ${body}= Format String ${template} objectInstanceIds=${objectInstanceIds} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -221,9 +223,6 @@ Check HTTP Response Body Json Schema Is Validate Json ${schema} ${response['body']} Log Json Schema Validation OK -Check LINK in Header +Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link - Should Not Be Empty ${linkURL} - - - + Should Not Be Empty ${linkURL} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt index 7f2bab92d..0d578a276 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt @@ -33,4 +33,6 @@ ${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies. ${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa -${response} \ No newline at end of file +${response} + +${objectInstanceIds} daca910b0-00d4f1a2b675d-604257e42 \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json index 026d55498..b69b9f03f 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreatePmJobRequest.json @@ -1,10 +1,12 @@ -{ +{{ "objectType":"dummy", - "objectInstanceIds" : ["1f50d68b-82e8-4deb-bd40-c934d4d1ac0a"], - "criteria" : { + "objectInstanceIds" : [ + "{objectInstanceIds}" + ], + "criteria" : {{ "performanceMetric": [], "performanceMetricGroup": [], "collectionPeriod": 10, "reportingPeriod": 30 - } -} \ No newline at end of file + }} +}} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json index 3bcd017e9..1162190f7 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/CreateThresholdRequest.json @@ -1,13 +1,13 @@ -{ +{{ "objectType":"", - "objectInstanceIds" : "", - "criteria" : { + "objectInstanceIds" : "{objectInstanceIds}", + "criteria" : {{ "performanceMetric": "cpu_util", "thresholdType": "SIMPLE", - "simpleThresholdDetails": { + "simpleThresholdDetails": {{ "thresholdValue": 10, "hysteresis": 50 - } + }} - } -} \ No newline at end of file + }} +}} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json index 8ceab118a..3ca4fc25a 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/subscriptions.json @@ -1,6 +1,6 @@ -{ - "callbackUri": "http://172.22.1.7:9091/nfvmanopm/subscriptions", - "filter": { +{{ + "callbackUri": "{callback_uri}{callback_endpoint}", + "filter": {{ "notificationTypes": ["ThresholdCrossedNotification"] - } -} \ No newline at end of file + }} +}} \ No newline at end of file -- GitLab From b3a5408760fe0f10e1bd1162ca712d85a5d42904 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 13:06:07 +0500 Subject: [PATCH 043/116] minor bugs fixed and redundant post-conditions removed --- .../IndividualPmJob.robot | 29 +++-------------- .../IndividualReport.robot | 32 +++---------------- .../IndividualSubscription.robot | 30 +++-------------- .../IndividualThreshold.robot | 26 ++------------- .../PMJobs.robot | 12 +++---- .../Subscriptions.robot | 9 ++---- .../Thresholds.robot | 7 +--- libspecs/Easter.libspec | 2 +- libspecs/Reserved.libspec | 2 +- 9 files changed, 25 insertions(+), 124 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot index 94e7cffff..5835ba44a 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot @@ -14,15 +14,14 @@ POST Individual NFV-MANO Performance Job - Method not implemented ... Reference: clause 6.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO Performance Job is not created on the NFV-MANO + ... Post-Conditions: none Send Post request for individual NFV-MANO Performance Job Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Performance Job is not Created GET individual NFV-MANO Performance Job [Documentation] Test ID: 8.3.2.2.2 ... Test title: Get individual NFV-MANO Performance Job - ... Test objective: The objective is to test the retrieval of an individual performance monitoring job and perform a JSON schema and content validation of the collected job data structure + ... Test objective: The objective is to test the retrieval of an individual performance monitoring job and perform a JSON schema validation of the collected job data structure ... Pre-conditions: A NFV-MANO instance is instantiated. ... Reference: clause 6.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -54,10 +53,9 @@ PUT Individual NFV-MANO Performance Job - Method not implemented ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO Performance Job is not modified by the operation + ... Post-Conditions: none Send Put request for individual NFV-MANO Performance Job Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) PATCH Individual NFV-MANO Performance Job - Method not implemented [Documentation] Test ID: 8.3.2.2.5 @@ -67,10 +65,9 @@ PATCH Individual NFV-MANO Performance Job - Method not implemented ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO Performance Job is not modified by the operation + ... Post-Conditions: none Send Patch request for individual NFV-MANO Performance Job Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) DELETE Individual NFV-MANO Performance Job [Documentation] Test ID: 8.3.2.2.6 @@ -157,24 +154,6 @@ Send Patch request for individual NFV-MANO Performance Job ${output}= Output response Set Suite Variable ${response} ${output} -Check Postcondition NFV-MANO Performance Job is not Created - Log Trying to get a new Pm Job - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${newPmJobId} - ${output}= Output response - Set Suite Variable ${response} ${output} - Check HTTP Response Status Code Is 404 - -Check Postcondition NFV-MANO Performance Job is Unmodified (Implicit) - Log Check Postcondition NFV-MANO PM job is not modified - GET individual NFV-MANO Performance Job - Log Check Response matches original NFV-MANO Pm Job - ${pmJob}= evaluate json.loads('''${response['body']}''') json - Should Be Equal ${origresponse['body']['id']} ${pmJob.id} - Should Be Equal ${origresponse['body']['criteria']} ${pmJob.criteria} - Should Be Equal ${origresponse['body']['_links']} ${pmJob._links} - Check Postcondition NFV-MANO Pm Job is Deleted Log Check Postcondition GET individual NFV-MANO Performance Job diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot index 4f0a2a2f7..0211b5545 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot @@ -14,10 +14,9 @@ POST Individual Performance Report - Method not implemented ... Reference: clause 6.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO performance report is not created. + ... Post-Conditions: none Send Post request for Individual Performance Report Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Individual Performance Report is not Created Get Individual Performance Report [Documentation] Test ID: 8.3.2.3.2 @@ -52,10 +51,9 @@ PUT Individual Performance Report - Method not implemented ... Reference: clause 6.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO performance report is not modified by the operation + ... Post-Conditions: none Send Put request for Individual Performance Report Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Individual Performance Report is Unmodified (Implicit) PATCH Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.5 @@ -65,10 +63,9 @@ PATCH Individual Performance Report - Method not implemented ... Reference: clause 6.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO performance report is not modified by the operation + ... Post-Conditions: none Send Patch request for Individual Performance Report Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Individual Performance Report is Unmodified (Implicit) DELETE Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.6 @@ -78,10 +75,9 @@ DELETE Individual Performance Report - Method not implemented ... Reference: clause 6.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANOM ... Applicability: none - ... Post-Conditions: The NFV-MANO performance report is not deleted by the operation + ... Post-Conditions: none Send Delete request for Individual Performance Report Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Individual Performance Report Exists *** Keywords *** Get Individual Performance Report @@ -134,26 +130,6 @@ Send Delete request for Individual Performance Report ${output}= Output response Set Suite Variable ${response} ${output} -Check Postcondition NFV-MANO Individual Performance Report Exists - Log Checking that report still exists - Get Individual Performance Report - -Check Postcondition NFV-MANO Individual Performance Report is not Created - Log Trying to get a new report - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId}/reports/${newReportId} - ${output}= Output response - Set Suite Variable ${response} ${output} - Check HTTP Response Status Code Is 404 - -Check Postcondition NFV-MANO Individual Performance Report is Unmodified (Implicit) - Log Check Postcondition NFV-MANO PM job is not modified - Get Individual Performance Report - Log Check Response matches original NFV-MANO report - ${report}= evaluate json.loads('''${response['body']}''') json - Should Be Equal ${origResponse['body']['entries'][0]['objectInstanceId']} ${report['entries'][0]['objectInstanceId']} - Check HTTP Response Status Code Is [Arguments] ${expected_status} ${status}= Convert To Integer ${expected_status} diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot index c00a2b6bc..2b7b4db88 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot @@ -10,7 +10,7 @@ Resource environment/individualSubscription.txt GET Individual Performance Subscription [Documentation] Test ID: 8.3.2.7.1 ... Test title: GET Individual Performance Subscription - ... Test objective: The objective is to test the retrieval of individual performance subscription and perform a JSON schema and content validation of the returned subscription data structure. + ... Test objective: The objective is to test the retrieval of individual performance subscription and perform a JSON schema validation of the returned subscription data structure. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. ... Reference: clause 6.5.9.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -66,10 +66,9 @@ POST Individual Performance Subscription - Method not implemented ... Reference: clause 6.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Performance Subscription is not created on the NFV-MANO + ... Post-Conditions: none Send Post request for individual Performance Subscription Check HTTP Response Status Code Is 405 - Check Postcondition Performance Subscription is not Created PUT Individual Performance Subscription - Method not implemented [Documentation] Test ID: 8.3.2.7.6 @@ -79,10 +78,9 @@ PUT Individual Performance Subscription - Method not implemented ... Reference: clause 6.5.9.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Performance subscription is not modified by the operation + ... Post-Conditions: none Send Put request for individual Performance Threshold Check HTTP Response Status Code Is 405 - Check Postcondition Performance Subscription is Unmodified (Implicit) PATCH Individual Performance Subscription - Method not implemented [Documentation] Test ID: 8.3.2.7.7 @@ -92,10 +90,9 @@ PATCH Individual Performance Subscription - Method not implemented ... Reference: clause 6.5.9.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Performance subscription is not modified by the operation + ... Post-Conditions: none Send Patch request for individual Performance Threshold Check HTTP Response Status Code Is 405 - Check Postcondition Performance Subscription is Unmodified (Implicit) *** Keywords *** Check HTTP Response Status Code Is @@ -154,15 +151,6 @@ Send Post request for individual Performance Subscription ${output}= Output response Set Suite Variable @{response} ${output} -Check Postcondition Performance Subscription is not Created - Log Trying to get a new subscription - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} - ${output}= Output response - Set Suite Variable @{response} ${output} - Check HTTP Response Status Code Is 404 - Send Put request for individual Performance Threshold Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} @@ -179,12 +167,4 @@ Send Patch request for individual Performance Threshold Set Suite Variable ${origResponse} ${origOutput} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} ${output}= Output response - Set Suite Variable @{response} ${output} - -Check Postcondition Performance Subscription is Unmodified (Implicit) - Log Check postconidtion subscription not modified - GET individual Performance Subscription - Log Check Response matches original Subscription - ${subscription}= evaluate json.loads('''${response['body']}''') json - Should Be Equal As Strings ${origResponse['body']['id']} ${subscription.id} - Should Be Equal As Strings ${origResponse['body']['callbackUri']} ${subscription.callbackUri} \ No newline at end of file + Set Suite Variable @{response} ${output} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot index 0f2911c03..b3a0ac64e 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot @@ -15,10 +15,9 @@ POST Individual Threshold - Method not implemented ... Reference: clause 6.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Performance Threshold is not created on the NFV-MANO + ... Post-Conditions: none Send Post request for individual Performance Threshold Check HTTP Response Status Code Is 405 - Check Postcondition Performance Threshold is not Created GET Individual Threshold [Documentation] Test ID: 8.3.2.5.2 @@ -54,10 +53,9 @@ PUT Individual Threshold - Method not implemented ... Reference: clause 6.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Performance Threshold is not modified by the operation + ... Post-Conditions: none Send Put request for individual Performance Threshold Check HTTP Response Status Code Is 405 - Check Postcondition Performance Threshold is Unmodified (Implicit) PATCH Individual Threshold - Method not implemented [Documentation] Test ID: 8.3.2.5.5 @@ -67,10 +65,9 @@ PATCH Individual Threshold - Method not implemented ... Reference: clause 6.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Performance Threshold is not modified by the operation + ... Post-Conditions: none Send Patch request for individual Performance Threshold Check HTTP Response Status Code Is 405 - Check Postcondition Performance Threshold is Unmodified (Implicit) DELETE Individual Threshold [Documentation] Test ID: 8.3.2.5.6 @@ -157,23 +154,6 @@ Send Patch request for individual Performance Threshold ${output}= Output response Set Suite Variable @{response} ${output} -Check Postcondition Performance Threshold is Unmodified (Implicit) - Log Check postconidtion threshold not modified - GET individual Performance Threshold - Log Check Response matches original Threshold - ${threshold}= evaluate json.loads('''${response['body']}''') json - Should Be Equal ${origresponse['body']['id']} ${threshold.id} - Should Be Equal ${origresponse['body']['criteria']} ${threshold.criteria} - -Check Postcondition Performance Threshold is not Created - Log Trying to get a new Threshold - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds/${newThresholdId} - ${output}= Output response - Set Suite Variable @{response} ${output} - Check HTTP Response Status Code Is 404 - Check Postcondition Performance Threshold is Deleted Log Check Postcondition Threshold is deleted GET individual Performance Threshold diff --git a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot index 63793592f..bf472e2f0 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot @@ -125,6 +125,7 @@ GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector ... Post-Conditions: none GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails GET information about multiple Performance Monitoring Jobs to get Paged Response [Documentation] Test ID: 8.3.2.1.10 @@ -137,7 +138,7 @@ GET information about multiple Performance Monitoring Jobs to get Paged Response ... Post-Conditions: none GET all NFV-MANO Performance Monitoring Jobs Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link GET information about multiple Performance Monitoring Jobs for Bad Request Response too big [Documentation] Test ID: 8.3.2.1.11 @@ -175,7 +176,7 @@ Get information about multiple Performance Monitoring Jobs with malformed author ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none GET Performance Monitoring Jobs with malformed authorization token - Check HTTP Response Status Code Is 400 + Check HTTP Response Status Code Is 401 Get information about multiple Performance Monitoring Jobs without authorization token [Documentation] Test ID: 8.3.2.1.14 @@ -236,7 +237,6 @@ DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Post-Conditions: none Send DELETE Request for all NFV-MANO Performance Monitoring Jobs Check HTTP Response Status Code Is 405 - Check Postcondition NFV-MANO Performance Monitoring Jobs Exist *** Keywords *** GET all NFV-MANO Performance Monitoring Jobs @@ -407,11 +407,7 @@ Check HTTP Response Body Json Schema Is ${schema} = Catenate SEPARATOR= ${input} .schema.json Validate Json ${schema} ${response['body']} Log Json Schema Validation OK - -Check Postcondition NFV-MANO Performance Monitoring Jobs Exist - Log Checking that Pm Job still exists - GET all NFV-MANO Performance Monitoring Jobs -Check LINK in Header +Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot index 070607c5e..f43e864f7 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot @@ -169,10 +169,9 @@ DELETE Performance Subscriptions - Method not implemented ... Reference: clause 6.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The performance subscriptions are not deleted by the failed operation + ... Post-Conditions: none Send Delete Request for Performance Subscriptions Check HTTP Response Status Code Is 405 - Check Postcondition Performance Subscriptions Exists *** Keywords *** @@ -320,8 +319,4 @@ Send Delete Request for Performance Subscriptions Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${output}= Output response - Set Suite Variable ${response} ${output} - -Check Postcondition Performance Subscriptions Exists - Log Checking that subscriptions exists - Get all Performance Subscriptions \ No newline at end of file + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot index c0a605ad8..f52a67ad6 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot @@ -121,10 +121,9 @@ DELETE Performance Thresholds - Method not implemented ... Reference: clause 6.5.6.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO performance thresholds are not deleted by the failed operation + ... Post-Conditions: none Send DELETE Request for all Performance Thresholds Check HTTP Response Status Code Is 405 - Check Postcondition Thresholds Exist *** Keywords *** GET all Performance Thresholds @@ -186,10 +185,6 @@ Send DELETE Request for all Performance Thresholds DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/thresholds ${output}= Output response Set Suite Variable ${response} ${output} - -Check Postcondition Thresholds Exist - Log Checking that Thresholds still exists - GET all Performance Thresholds Check Postcondition Threshold Exists Log Checking that Threshold exists diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec index 32914eb5e..eda6655b5 100644 --- a/libspecs/Easter.libspec +++ b/libspecs/Easter.libspec @@ -1,5 +1,5 @@ - + global yes diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec index 49406f6a9..28941a6c0 100644 --- a/libspecs/Reserved.libspec +++ b/libspecs/Reserved.libspec @@ -1,5 +1,5 @@ - + global yes -- GitLab From c2b6471a5d496dd8decc08d943a68295257438ba Mon Sep 17 00:00:00 2001 From: Sana Zulfiqar Date: Mon, 14 Sep 2020 11:08:27 +0200 Subject: [PATCH 044/116] pre-conditions updated --- .../NFVMANOPerformanceManagement-API/IndividualPmJob.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot index 5835ba44a..e5aba09e6 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot @@ -10,7 +10,7 @@ POST Individual NFV-MANO Performance Job - Method not implemented [Documentation] Test ID: 8.3.2.2.1 ... Test title: POST Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO Performance Monitoring Job - ... Pre-conditions: A NFV-MANO instance is instantiated + ... Pre-conditions: none ... Reference: clause 6.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -49,7 +49,7 @@ PUT Individual NFV-MANO Performance Job - Method not implemented [Documentation] Test ID: 8.3.2.2.4 ... Test title: PUT Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing NFV-MANO Performance Monitoring Job - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -61,7 +61,7 @@ PATCH Individual NFV-MANO Performance Job - Method not implemented [Documentation] Test ID: 8.3.2.2.5 ... Test title: PATCH Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new NFV-MANO Performance Monitoring Job - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none -- GitLab From 99209176767d4e843ec547ce62c012c559f8c5a3 Mon Sep 17 00:00:00 2001 From: Sana Zulfiqar Date: Mon, 14 Sep 2020 11:12:49 +0200 Subject: [PATCH 045/116] Pre-conditions updated --- .../IndividualReport.robot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot index 0211b5545..f1f892f88 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot @@ -10,7 +10,7 @@ POST Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.1 ... Test title: POST Individual Performance Report - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO performance report within a monitoring job. - ... Pre-conditions: A NFV-MANO instance is instantiated. + ... Pre-conditions: none ... Reference: clause 6.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -47,7 +47,7 @@ PUT Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.4 ... Test title: PUT Individual Performance Report - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing NFV-MANO performance report within a monitoring job. - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. + ... Pre-conditions: none ... Reference: clause 6.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -59,7 +59,7 @@ PATCH Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.5 ... Test title: PATCH Individual Performance Report - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing NFV-MANO performance report within a monitoring job. - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. + ... Pre-conditions: none ... Reference: clause 6.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -71,7 +71,7 @@ DELETE Individual Performance Report - Method not implemented [Documentation] Test ID: 8.3.2.3.6 ... Test title: DELETE Individual Performance Report - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete an existing NFV-MANO performance report within a monitoring job - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job in the NFV-MANOM. + ... Pre-conditions: none ... Reference: clause 6.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANOM ... Applicability: none -- GitLab From 1b2c02703e2f006dedb18cc9664fc299c217a3b7 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 15:14:04 +0500 Subject: [PATCH 046/116] pre-conditions updated --- .../IndividualSubscription.robot | 6 +++--- .../IndividualThreshold.robot | 6 +++--- SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot | 6 +++--- SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot | 6 +++--- SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot | 6 +++--- libspecs/Easter.libspec | 2 +- libspecs/Reserved.libspec | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot index 2b7b4db88..f85599102 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot @@ -62,7 +62,7 @@ POST Individual Performance Subscription - Method not implemented [Documentation] Test ID: 8.3.2.7.5 ... Test title: POST Individual Performance Subscription - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Subscription - ... Pre-conditions: An instance is instantiated + ... Pre-conditions: none ... Reference: clause 6.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -74,7 +74,7 @@ PUT Individual Performance Subscription - Method not implemented [Documentation] Test ID: 8.3.2.7.6 ... Test title: PUT Individual Performance Subscription - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing Performance subscription. - ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.9.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -86,7 +86,7 @@ PATCH Individual Performance Subscription - Method not implemented [Documentation] Test ID: 8.3.2.7.7 ... Test title: PATCH Individual Performance Subscription - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing Performance subscription - ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.9.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot index b3a0ac64e..e4955607e 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot @@ -11,7 +11,7 @@ POST Individual Threshold - Method not implemented [Documentation] Test ID: 8.3.2.5.1 ... Test title: POST Individual Threshold - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Threshold - ... Pre-conditions: A NFV-MANO instance is instantiated + ... Pre-conditions: none ... Reference: clause 6.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -49,7 +49,7 @@ PUT Individual Threshold - Method not implemented [Documentation] Test ID: 8.3.2.5.4 ... Test title: PUT Individual Threshold - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing Performance threshold - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. + ... Pre-conditions: none ... Reference: clause 6.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -61,7 +61,7 @@ PATCH Individual Threshold - Method not implemented [Documentation] Test ID: 8.3.2.5.5 ... Test title: PATCH Individual Threshold - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing Performance threshold - ... Pre-conditions: A instance is instantiated. One or more performance thresholds are set. + ... Pre-conditions: none ... Reference: clause 6.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot index bf472e2f0..ece3fde86 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot @@ -206,7 +206,7 @@ PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented [Documentation] Test ID: 8.3.2.1.16 ... Test title: PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Monitoring Jobs - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -218,7 +218,7 @@ PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) [Documentation] Test ID: 8.3.2.1.17 ... Test title: PATCH all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update NFV-MANO Performance Monitoring Jobs - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -230,7 +230,7 @@ DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented [Documentation] Test ID: 8.3.2.1.18 ... Test title: DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Monitoring Jobs - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot index f43e864f7..8d89041e2 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot @@ -141,7 +141,7 @@ PUT Performance Subscriptions - Method not implemented [Documentation] Test ID 8.3.2.6.10 ... Test title: PUT Performance Subscriptions - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify performance subscriptions - ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -153,7 +153,7 @@ PATCH Performance Subscriptions - Method not implemented [Documentation] Test ID 8.3.2.6.11 ... Test title: PATCH Performance Subscriptions - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update performance subscriptions - ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -165,7 +165,7 @@ DELETE Performance Subscriptions - Method not implemented [Documentation] Test ID 8.3.2.6.12 ... Test title: DELETE Performance Subscriptions - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete performance subscriptions - ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot index f52a67ad6..05a668087 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot @@ -93,7 +93,7 @@ PUT Performance Thresholds - Method not implemented [Documentation] Test ID: 8.3.2.4.7 ... Test title: PUT Performance Thresholds - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Thresholds - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.6.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -105,7 +105,7 @@ PATCH Performance Thresholds - Method not implemented [Documentation] Test ID: 8.3.2.4.8 ... Test title: PATCH Performance Thresholds - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify NFV-MANO Performance Thresholds - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.6.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -117,7 +117,7 @@ DELETE Performance Thresholds - Method not implemented [Documentation] Test ID: 8.3.2.4.9 ... Test title: DELETE Performance Thresholds - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Thresholds - ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 6.5.6.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec index eda6655b5..de6bc76ca 100644 --- a/libspecs/Easter.libspec +++ b/libspecs/Easter.libspec @@ -1,5 +1,5 @@ - + global yes diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec index 28941a6c0..54f85645e 100644 --- a/libspecs/Reserved.libspec +++ b/libspecs/Reserved.libspec @@ -1,5 +1,5 @@ - + global yes -- GitLab From 5878f59f079697d0db776c74ac7b022e4f9408ca Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 22 Oct 2020 18:45:24 +0200 Subject: [PATCH 047/116] updated references --- .../IndividualPmJob.robot | 14 ++++---- .../IndividualReport.robot | 12 +++---- .../IndividualSubscription.robot | 14 ++++---- .../IndividualThreshold.robot | 14 ++++---- .../PMJobs.robot | 32 +++++++++---------- .../PerformanceManagementNotification.robot | 4 +-- .../Subscriptions.robot | 24 +++++++------- .../Thresholds.robot | 18 +++++------ 8 files changed, 66 insertions(+), 66 deletions(-) diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot index e5aba09e6..e1a351ae0 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualPmJob.robot @@ -11,7 +11,7 @@ POST Individual NFV-MANO Performance Job - Method not implemented ... Test title: POST Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO Performance Monitoring Job ... Pre-conditions: none - ... Reference: clause 6.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ GET individual NFV-MANO Performance Job ... Test title: Get individual NFV-MANO Performance Job ... Test objective: The objective is to test the retrieval of an individual performance monitoring job and perform a JSON schema validation of the collected job data structure ... Pre-conditions: A NFV-MANO instance is instantiated. - ... Reference: clause 6.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -37,7 +37,7 @@ GET individual NFV-MANO Performance Job with invalid resource identifier ... Test title: Get individual NFV-MANO Performance Job with invalid resource identifier ... Test objective: The objective is to test that the retrieval of an individual performance monitoring job fails when using an invalid resource identifier, and perform the JSON schema validation of the failed operation HTTP response ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,7 @@ PUT Individual NFV-MANO Performance Job - Method not implemented ... Test title: PUT Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing NFV-MANO Performance Monitoring Job ... Pre-conditions: none - ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,7 @@ PATCH Individual NFV-MANO Performance Job - Method not implemented ... Test title: PATCH Individual NFV-MANO Performance Job - method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new NFV-MANO Performance Monitoring Job ... Pre-conditions: none - ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -74,7 +74,7 @@ DELETE Individual NFV-MANO Performance Job ... Test title: Delete Individual NFV-MANO Performance Job ... Test objective: The objective is to test the deletion of an individual performance monitoring job ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The NFV-MANO Performance Job is no more available. @@ -87,7 +87,7 @@ DELETE Individual NFV-MANO Performance Job with invalid resource identifier ... Test title: Delete individual NFV-MANO Performance Job with invalid resource identifier ... Test objective: The objective is to test that the deletion of an individual NFV-MANO performance monitoring job fails when using an invalid resource identifier ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot index f1f892f88..c3339721c 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualReport.robot @@ -11,7 +11,7 @@ POST Individual Performance Report - Method not implemented ... Test title: POST Individual Performance Report - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new NFV-MANO performance report within a monitoring job. ... Pre-conditions: none - ... Reference: clause 6.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.5.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ Get Individual Performance Report ... Test title: Get Individual Performance Report ... Test objective: The objective is to test the retrieval of an individual performance report associated to a monitoring job and perform a JSON schema validation of the collected report data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. - ... Reference: clause 6.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.5.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ Get Individual Performance Report with invalid resource endpoint ... Test title: Get Individual Performance Report with invalid resource endpoint ... Test objective: The objective is to test that the retrieval of an individual NFV-MANO performance report associated to a monitoring job fails when using an invalid resource endpoint. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance reports are set for a monitoring job. - ... Reference: clause 6.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.5.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PUT Individual Performance Report - Method not implemented ... Test title: PUT Individual Performance Report - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing NFV-MANO performance report within a monitoring job. ... Pre-conditions: none - ... Reference: clause 6.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.5.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ PATCH Individual Performance Report - Method not implemented ... Test title: PATCH Individual Performance Report - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing NFV-MANO performance report within a monitoring job. ... Pre-conditions: none - ... Reference: clause 6.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.5.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -72,7 +72,7 @@ DELETE Individual Performance Report - Method not implemented ... Test title: DELETE Individual Performance Report - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete an existing NFV-MANO performance report within a monitoring job ... Pre-conditions: none - ... Reference: clause 6.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.5.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANOM ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot index f85599102..14b777ec4 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualSubscription.robot @@ -12,7 +12,7 @@ GET Individual Performance Subscription ... Test title: GET Individual Performance Subscription ... Test objective: The objective is to test the retrieval of individual performance subscription and perform a JSON schema validation of the returned subscription data structure. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. - ... Reference: clause 6.5.9.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.9.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -26,7 +26,7 @@ GET Individual Performance Subscription with invalid resource identifier ... Test title: GET Individual Performance Subscription with invalid resource identifier ... Test objective: The objective is to test that the retrieval of an individual performance subscription fails when using an invalid resource identifier. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. - ... Reference: clause 6.5.9.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.9.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ DELETE Individual Performance Subscription ... Test title: DELETE Individual Performance Subscription ... Test objective: The objective is to test the deletion of an individual performance subscription ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. - ... Reference: clause 6.5.9.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.9.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Performance Subscription is not available anymore in the NFV-MANO @@ -51,7 +51,7 @@ DELETE Individual Performance Subscription with invalid resource identifier ... Test title: DELETE Individual Performance Subscription with invalid resource identifier ... Test objective: The objective is to test that the deletion of an individual performance subscription fails when using an invalid resource identifier. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. - ... Reference: clause 6.5.9.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.9.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,7 @@ POST Individual Performance Subscription - Method not implemented ... Test title: POST Individual Performance Subscription - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Subscription ... Pre-conditions: none - ... Reference: clause 6.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.9.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -75,7 +75,7 @@ PUT Individual Performance Subscription - Method not implemented ... Test title: PUT Individual Performance Subscription - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing Performance subscription. ... Pre-conditions: none - ... Reference: clause 6.5.9.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.9.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -87,7 +87,7 @@ PATCH Individual Performance Subscription - Method not implemented ... Test title: PATCH Individual Performance Subscription - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing Performance subscription ... Pre-conditions: none - ... Reference: clause 6.5.9.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.9.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot index e4955607e..34f912e5c 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/IndividualThreshold.robot @@ -12,7 +12,7 @@ POST Individual Threshold - Method not implemented ... Test title: POST Individual Threshold - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new Performance Threshold ... Pre-conditions: none - ... Reference: clause 6.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -24,7 +24,7 @@ GET Individual Threshold ... Test title: GET Individual Threshold ... Test objective: The objective is to test the retrieval of an individual NFV-MANO performance threshold and perform a JSON schema and content validation of the collected threshold data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. - ... Reference: clause 6.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET Individual Threshold with invalid resource identifier ... Test title: GET Individual Threshold with invalid resource identifier ... Test objective: The objective is to test that the retrieval of an individual performance threshold fails when using an invalid resource identifier ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance jobs are set. - ... Reference: clause 6.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,7 @@ PUT Individual Threshold - Method not implemented ... Test title: PUT Individual Threshold - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing Performance threshold ... Pre-conditions: none - ... Reference: clause 6.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.7.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,7 @@ PATCH Individual Threshold - Method not implemented ... Test title: PATCH Individual Threshold - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing Performance threshold ... Pre-conditions: none - ... Reference: clause 6.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.7.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -74,7 +74,7 @@ DELETE Individual Threshold ... Test title: DELETE Individual Threshold ... Test objective: The objective is to test the deletion of an individual performance threshold ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. - ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Performance Threshold is not available anymore in the NFV-MANO @@ -87,7 +87,7 @@ DELETE Individual Threshold with invalid resource identifier ... Test title: DELETE Individual Threshold with invalid resource identifier ... Test objective: The objective is to test the deletion of an individual performance threshold ... Pre-conditions: A NFV-MANO instance is instantiated. One or more performance thresholds are set. - ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.7.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot index ece3fde86..5e9129e49 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/PMJobs.robot @@ -14,7 +14,7 @@ Create new NFV-MANO Performance Monitoring Job ... Test title: Create a new NFV-MANO Performance Monitoring Job ... Test objective: The objective is to test the creation of a new NFV-MANO performance monitoring job and perform the JSON schema validation of the returned job data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The NFV-MANO Performance Job is successfully created on the NFV-MANO @@ -28,7 +28,7 @@ GET all NFV-MANO Performance Monitoring Jobs ... Test title: GET all NFV-MANO Performance Monitoring Jobs ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance monitoring jobs and perform a JSON schema validation ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ GET NFV-MANO Performance Monitoring Jobs with attribute-based filter ... Test title: GET all NFV-MANO Performance Monitoring Jobs with attribute-based filter ... Test objective: The objective is to test the retrieval of NFV-MANO performance monitoring jobs using attribute-based filter, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ GET all NFV-MANO Performance Monitoring Jobs with all_fields attribute selector ... Test title: GET all NFV-MANO Performance Monitoring Jobs with all_fields attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs all_fields attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -67,7 +67,7 @@ GET all NFV-MANO Performance Monitoring Jobs with exclude_default attribute sele ... Test title: GET all NFV-MANO Performance Monitoring Jobs with exclude_default attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs exclude_default attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -80,7 +80,7 @@ GET all NFV-MANO Performance Monitoring Jobs with fields attribute selector ... Test title: GET all NFV-MANO Performance Monitoring Jobs with fields attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs fields attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO supports the use of fields attribute selector ... Post-Conditions: none @@ -93,7 +93,7 @@ GET all NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selec ... Test title: GET all NFV-MANO Performance Monitoring Jobs with exclude_fields attribute selector ... Test objective: The objective is to test the retrieval of all NFV-MANO performance monitoring jobs exclude_fields attribute selector, perform a JSON schema validation of the collected jobs data structure ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO supports the use of exclude_fields attribute selector ... Post-Conditions: none @@ -106,7 +106,7 @@ GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter ... Test title: GET NFV-MANO Performance Monitoring Jobs with invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of NFV-MANO performance monitoring jobs fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -119,7 +119,7 @@ GET NFV-MANO Performance Monitoring Jobs with invalid attribute selector ... Test title: GET NFV-MANO Performance Monitoring Jobs with invalid resource endpoint ... Test objective: The objective is to test that the retrieval of NFV-MANO performance monitoring jobs fails with invalid attribute selector ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance jobs are set in the NFV-MANO. - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -132,7 +132,7 @@ GET information about multiple Performance Monitoring Jobs to get Paged Response ... Test title: GET information about multiple Performance Monitoring Jobs to get Paged Response ... Test objective: The objective is to retrieve information about the performance monitoring jobs to get paged response ... Pre-conditions: none - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -145,7 +145,7 @@ GET information about multiple Performance Monitoring Jobs for Bad Request Respo ... Test title: GET information about multiple Performance Monitoring Jobs for Bad Request Response too big ... Test objective: The objective is to test that GET method fail retrieving status information about performance monitoring jobs when Response is too big, and perform the JSON schema validation of the failed operation HTTP response ... Pre-conditions: none - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -158,7 +158,7 @@ GET information about multiple Performance Monitoring Jobs with "fields" and "ex ... Test title: GET all NFV-MANO Performance Monitoring Jobs with "fields" and "exclude_default" attribute selector ... Test objective: The objective is to retrieve all performance monitoring jobs 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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -171,7 +171,7 @@ Get information about multiple Performance Monitoring Jobs with malformed author ... Test title: Get information about multiple Performance Monitoring Jobs with malformed authorization token ... Test objective: The objective is to test that the retrieval of information about Performance Monitoring Jobs fails when using malformed authorization token ... Pre-conditions: none - ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 6.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -207,7 +207,7 @@ PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test title: PUT all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Monitoring Jobs ... Pre-conditions: none - ... Reference: clause 6.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -219,7 +219,7 @@ PATCH all NFV-MANO Performance Monitoring Jobs - (Method not implemented) ... Test title: PATCH all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: none - ... Reference: clause 6.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -231,7 +231,7 @@ DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test title: DELETE all NFV-MANO Performance Monitoring Jobs - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Monitoring Jobs ... Pre-conditions: none - ... Reference: clause 6.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.3.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot b/SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot index fe84432d6..d864a87ea 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/PerformanceManagementNotification.robot @@ -17,7 +17,7 @@ Performance Information Availability Notification ... Test title: Performance Information Availability Notification ... Test objective: The objective is to test the dispatch of Performance Information Availability Notification when new performance information is available 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 performance job is created, and a subscription for information availability notifications is available in the NFV-MANO. - ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -30,7 +30,7 @@ Threshold Crossed Notification ... Test title: Threshold Crossed Notification ... Test objective: The objective is to test the dispatch of Threshold Crossed Notification when a previously set performance metric threshold is crossed, 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 threshold subscription is available in the NFV-MANO. - ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot index 8d89041e2..3af4db130 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Subscriptions.robot @@ -17,7 +17,7 @@ GET all Performance Subscriptions ... Test title: GET all Performance Subscriptions ... Test objective: The objective is to test the retrieval of all performance subscriptions and perform a JSON schema validation of the returned subscriptions data structure. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. - ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -30,7 +30,7 @@ GET Performance Subscriptions with attribute-based filter ... Test title: GET Performance Subscriptions with attribute-based filter ... Test objective: The objective is to test the retrieval of performance subscriptions using attribute-based filter, perform a JSON schema validation of the collected indicators data structure. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. - ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -43,7 +43,7 @@ GET Performance Management Subscriptions with Paged Response ... Test title: GET Performance Management Subscriptions with Paged Response ... Test objective: The objective is to query information about NFV-MANO Performance Subscriptions to get Paged Response. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. - ... Reference: clauseclause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clauseclause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -56,7 +56,7 @@ GET Performance Subscriptions with invalid attribute-based filter ... Test title: GET Performance Subscriptions with invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of performance subscriptions fails when using invalid attribute-based filters, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. - ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -69,7 +69,7 @@ GET Performance Subscriptions - Bad Request Response too Big ... Test title: GET Performance Subscriptions - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of NFV-MANO performance subscriptions fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. - ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: @@ -82,7 +82,7 @@ GET Performance Subscriptions with invalid resource endpoint ... Test title: GET Performance Subscriptions with invalid resource endpoint ... Test objective: The objective is to test that the retrieval of all performance subscriptions fails when using invalid resource endpoint. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available. - ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -94,7 +94,7 @@ Create new Performance subscription ... Test title: Create new Performance subscription ... Test objective: The objective is to test the creation of a new performance subscription and perform a JSON schema and content validation of the returned subscription data structure. ... Pre-conditions: An instance is instantiated. - ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The performance subscription is successfully set and it matches the issued subscription. @@ -111,7 +111,7 @@ Create duplicated Performance subscription with NFV-MANO not creating duplicated ... Test title: Create duplicated Performance subscription with NFV-MANO not creating duplicated subscriptions ... Test objective: The objective is to test the attempt of a creation of a duplicated performance subscription and check that no new subscription is created by the NFV-MANO and a link to the original subscription is returned ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. - ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO does not support the creation of duplicated subscriptions ... Post-Conditions: The existing performance subscription returned is available in the NFV-MANO @@ -127,7 +127,7 @@ Create duplicated Performance subscription with NFV-MANO creating duplicated sub ... Test title: Create duplicated Performance subscription with NFV-MANO creating duplicated subscriptions ... Test objective: The objective is to test the creation of a duplicated performance subscription and perform a JSON schema and content validation of the returned duplicated subscription data structure. ... Pre-conditions: An instance is instantiated. At least one performance subscription is available in the NFV-MANO. - ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO supports the creation of duplicated subscriptions ... Post-Conditions: The duplicated performance subscription is successfully set and it matches the issued subscription @@ -142,7 +142,7 @@ PUT Performance Subscriptions - Method not implemented ... Test title: PUT Performance Subscriptions - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify performance subscriptions ... Pre-conditions: none - ... Reference: clause 6.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -154,7 +154,7 @@ PATCH Performance Subscriptions - Method not implemented ... Test title: PATCH Performance Subscriptions - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update performance subscriptions ... Pre-conditions: none - ... Reference: clause 6.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -166,7 +166,7 @@ DELETE Performance Subscriptions - Method not implemented ... Test title: DELETE Performance Subscriptions - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete performance subscriptions ... Pre-conditions: none - ... Reference: clause 6.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.8.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot index 05a668087..2cc794a63 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/Thresholds.robot @@ -13,7 +13,7 @@ Create new Performance Threshold ... Test title: Create new Performance Threshold ... Test objective: The objective is to test the creation of a new NFV-MANO performance threshold and perform the JSON schema validation of the returned threshold data structure. ... Pre-conditions: A NFV-MANO instance is instantiated. - ... Reference: clause 6.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The NFV-MANO Performance Threshold is successfully created on the NFV-MANO @@ -28,7 +28,7 @@ GET All Performance Thresholds ... Test title: GET All Performance Thresholds ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance thresholds and perform a JSON schema validation of the collected thresholds data structure. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. - ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ GET Performance Thresholds with attribute-based filter ... Test title: GET Performance Thresholds with attribute-based filter ... Test objective: The objective is to test the retrieval of all the available NFV-MANO performance thresholds when using attribute-based filters, perform a JSON schema validation of the collected thresholds data structure, and verify that the retrieved information matches the issued attribute-based filter ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set in the NFV-MANO. - ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -55,7 +55,7 @@ GET Performance Threshold with Paged Response ... Test title: GET Performance Threshold with Paged Response ... Test objective: The objective is to query information about NFV-MANO Performance Thresholds to get Paged Response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. - ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -68,7 +68,7 @@ GET Performance Thresholds - Invalid attribute-based filter ... Test title: GET Performance Thresholds - Invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of NFV-MANO performance thresholds fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. - ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -81,7 +81,7 @@ GET Performance Threshold - Bad Request Response too Big ... Test title: GET Performance Threshold - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of NFV-MANO performance thresholds fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: A NFV-MANO instance is instantiated. One or more NFV-MANO performance thresholds are set. - ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -94,7 +94,7 @@ PUT Performance Thresholds - Method not implemented ... Test title: PUT Performance Thresholds - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify NFV-MANO Performance Thresholds ... Pre-conditions: none - ... Reference: clause 6.5.6.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -106,7 +106,7 @@ PATCH Performance Thresholds - Method not implemented ... Test title: PATCH Performance Thresholds - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify NFV-MANO Performance Thresholds ... Pre-conditions: none - ... Reference: clause 6.5.6.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -118,7 +118,7 @@ DELETE Performance Thresholds - Method not implemented ... Test title: DELETE Performance Thresholds - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update NFV-MANO Performance Thresholds ... Pre-conditions: none - ... Reference: clause 6.5.6.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.6.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none -- GitLab From 2800ac2b7b3a91636a8a815e6f698725e1a82d6a Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 5 Aug 2020 12:26:13 +0500 Subject: [PATCH 048/116] Added Test Cases for LoggingJobs.robot --- .../LoggingJobs.robot | 190 ++++++++++ .../NFVMANOLogManagementKeywords.robot | 133 +++++++ .../environment/variables.txt | 39 ++ .../jsons/createLoggingJobRequest.json | 6 + .../schemas/LoggingJob.schema.json | 353 +++++++++++++++++ .../schemas/LoggingJobs.schema.json | 356 ++++++++++++++++++ .../schemas/ProblemDetails.schema.json | 1 + 7 files changed, 1078 insertions(+) create mode 100644 SOL009/NFVMANOLogManagement-API/LoggingJobs.robot create mode 100644 SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot create mode 100644 SOL009/NFVMANOLogManagement-API/environment/variables.txt create mode 100644 SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json create mode 100644 SOL009/NFVMANOLogManagement-API/schemas/LoggingJob.schema.json create mode 100644 SOL009/NFVMANOLogManagement-API/schemas/LoggingJobs.schema.json create mode 100644 SOL009/NFVMANOLogManagement-API/schemas/ProblemDetails.schema.json diff --git a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot new file mode 100644 index 000000000..dc4b136d2 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot @@ -0,0 +1,190 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Resource NFVMANOLogManagementKeywords.robot +Library JSONLibrary +Library OperatingSystem +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false + +*** Test Cases *** +POST Create a new logging job + [Documentation] Test ID: 8.3.4.1.1 + ... Test title: POST Create a new logging job + ... Test objective: The objective is to create a new logging job + ... Pre-conditions: + ... Reference: clause 8.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: logging job created + POST Create a new logging job + Check HTTP Response Status Code Is 201 + Check HTTP Response Header Contains Location + Check HTTP Response Body Json Schema Is LoggingJob + +GET information about logging jobs + [Documentation] Test ID: 8.3.4.1.2 + ... Test title: GET information logging jobs + ... Test objective: The objective is to retrieve information about logging jobs + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Jobs + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LoggingJobs + + +GET Logging jobs - invalid attribute-based filter + [Documentation] Test ID: 8.3.4.1.3 + ... Test title: GET Logging jobs - invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of logging jobs fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Job with invalid filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Logging jobs - invalid attribute selector + [Documentation] Test ID: 8.3.4.1.4 + ... Test title: GET Logging jobs - invalid attribute selector + ... Test objective: The objective is to test that the retrieval of logging jobs fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Job with invalid selector + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Logging jobs - Bad Request Response too Big + [Documentation] Test ID: 8.3.4.1.5 + ... Test title: GET Logging jobs - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of Logging job fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Jobs + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET information about logging jobs with attribute-based filter + [Documentation] Test ID: 8.3.4.1.6 + ... Test title: GET information about logging jobs with attribute-based filter + ... Test objective: The objective is to retrieve information about the logging jobs with attribute filters + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Job with filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LoggingJobs + +GET information about logging jobs with "all_fields" attribute selector + [Documentation] Test ID: 8.3.4.1.7 + ... Test title: GET information about logging jobs with "all_fields" attribute selector + ... Test objective: The objective is to retrieve information about logging jobs with "all_fields" attribute selector + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging jobs with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LoggingJobs + +GET information about Logging Jobs with exclude_default attribute selector + [Documentation] Test ID: 8.3.4.1.8 + ... Test title: GET information about Logging Jobs with "exclude_default" attribute selector + ... Test objective: The objective is to retrieve information about logging jobs with "exclude_default" attribute selector + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Jobs with exclude_default attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LoggingJobs + + +GET information about Logging Jobs with fields attribute selector + [Documentation] Test ID: 8.3.4.1.9 + ... Test title: GET information about Logging Jobs with fields attribute selector + ... Test objective: The objective is to retrieve information about Logging Jobs with fields attribute selector + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Jobs with fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LoggingJobs + +GET information about Logging Jobs with "exclude_fields" attribute selector + [Documentation] Test ID: 8.3.4.1.10 + ... Test title: GET information about Logging Jobs with "exclude_fields" attribute selector + ... Test objective: The objective is to retrieve information about the Logging Jobs with "exclude_fields" attribute selector + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: none + GET Logging Jobs with exclude_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LoggingJobs + +GET information about Logging Jobs with Paged Response + [Documentation] Test ID: 8.3.4.1.11 + ... Test title: GET information about Logging Jobs with Paged Response + ... Test objective: The objective is to query information about Logging Jobs to get Paged Response. + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + GET Logging Jobs + Check HTTP Response Status Code Is 200 + Check LINK in Header + +PUT Logging Jobs - Method not implemented + [Documentation] Test ID: 8.3.4.1.12 + ... Test title: PUT Logging Jobs - Method not implemented + ... Test objective: The objective is to test that the method is not implemented + ... Pre-conditions: + ... Reference: clause 8.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: none + PUT Logging Jobs + Check HTTP Response Status Code Is 405 + +PATCH Logging Jobs - Method not implemented + [Documentation] Test ID: 8.3.4.1.13 + ... Test title: PATCH Logging Jobs - Method not implemented + ... Test objective: The objective is to test that the method is not implemented + ... Pre-conditions: + ... Reference: clause 8.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: none + PATCH Logging Jobs + Check HTTP Response Status Code Is 405 + +DELETE Logging Jobs - Method not implemented + [Documentation] Test ID: 8.3.4.1.14 + ... Test title: DELETE Logging Jobs - Method not implemented + ... Test objective: The objective is to test that the method is not implemented + ... Pre-conditions: + ... Reference: clause 8.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: Logging Job is not deleted. + DELETE Logging Jobs + Check HTTP Response Status Code Is 405 diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot new file mode 100644 index 000000000..09b1b3c61 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -0,0 +1,133 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary +Library OperatingSystem +Library BuiltIn +Library JSONLibrary +Library Collections +Library JSONSchemaLibrary schemas/ +Library Process + + +*** Keywords *** + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + +POST Create a new logging job + Log Create a logging job + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/createLoggingJobRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Logging Jobs + Log Query to GET information about logging jobs. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Logging Job with invalid filter + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?attribute_not_exist=some_value + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Logging Job with invalid selector + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?fields=wrong_field + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Logging Job with filter + Log Query information about logging jobs with filters. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?${alarm_filter}=${filter_value} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +GET Logging jobs with all_fields attribute selector + Log Queries information about logging jobs, using all_fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Logging Jobs with exclude_default attribute selector + Log Queries information about logging jobs, using exclude_default + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Logging Jobs with fields attribute selector + Log Queries information about Logging Jobs, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Logging Jobs with exclude_fields attribute selector + Log Query VNF The GET method queries information about multiple alarms, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check LINK in Header + ${linkURL}= Get Value From Json ${response['headers']} $..Link + Should Not Be Empty ${linkURL} + +PUT Logging Jobs + 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}/${apiMajorVersion}/log_jobs + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} +PATCH Logging Jobs + 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}/${apiMajorVersion}/log_jobs + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} +DELETE Logging Jobs + 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}/${apiMajorVersion}/log_jobs + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt new file mode 100644 index 000000000..f35315454 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -0,0 +1,39 @@ +*** Variables *** +${NFVMANOHOST} localhost +${NFVMANO_PORT} 8080 +${NFVMANO_SCHEMA} https + + +${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 +${NEG_AUTHORIZATION} Bearer negativetoken + +${CONTENT_TYPE} application/json +${CONTENT_TYPE_JSON} application/json +${ACCEPT_JSON} application/json +${ACCEPT} application/json +${AUTH_USAGE} 1 +${FIELD_USAGE} 1 +${NFVMANO_CHECKS_NOTIF_ENDPOINT} 1 ## If true, during subscription, the FUT performs a get to the notification endpoint + +${NFVMANO_ALLOWS_DUPLICATE_SUBS} 1 + +${apiRoot} / +${apiMajorVersion} v1 +${apiName} nfvmanologm + +${response} {} + +${callback_port} 9091 +${callback_uri} http://172.22.1.7:${callback_port} +${callback_endpoint} /nfvmanologm/subscriptions +${callback_endpoint_error} /subs_404 +${sleep_interval} 20s + +${total_polling_time} 2 min +${polling_interval} 10 sec + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar + +${alarm_filter} id +${filter_value} 50daca910b000d4f1a2b675d604257e42 +${fields} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json b/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json new file mode 100644 index 000000000..77ec08188 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json @@ -0,0 +1,6 @@ +{ + "objectInstanceIds":[], + "jobCriteria":{ + "loggingType":"MESSAGES" + } +} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/schemas/LoggingJob.schema.json b/SOL009/NFVMANOLogManagement-API/schemas/LoggingJob.schema.json new file mode 100644 index 000000000..d7dd8b5d5 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/schemas/LoggingJob.schema.json @@ -0,0 +1,353 @@ +{ + "description": "This type represents a logging job. It shall comply with the provisions defined in table 8.6.2.6-1.", + "type": "object", + "required": [ + "id", + "objectInstanceIds", + "jobCriteria", + "jobConfig", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "objectInstanceIds": { + "description": "Identifiers of the object instance for which logging information is collected. This attribute shall contain the identifier of the instance of the object that is logged according to their type.", + "type": "array", + "items": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + } + }, + "jobCriteria": { + "description": "This type represents collection criteria for logging jobs. It shall comply with the provisions defined in table 8.6.3.2-1.", + "type": "object", + "required": [ + "loggingType" + ], + "properties": { + "loggingType": { + "description": "Type of logging. This defines the types of logged information to collect.\nPermitted values: - MESSAGES: logged NFV-MANO service interface messages. - SERVICES: logged messages about processes pertaining to NFV-MANO services. - SYSTEM: logged messages about the NFV-MANO functional entity’s system enabled by the provider.", + "type": "string", + "enum": [ + "MESSAGES", + "SERVICES", + "SYSTEM" + ] + }, + "messagesLogDetail": { + "description": "This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. It shall comply with the provisions defined in table 8.6.3.3-1.", + "type": "object", + "required": [ + "direction" + ], + "properties": { + "direction": { + "description": "The direction of the interface messages to match.\nPermitted values: - IN: input messages into the interface. - OUT: output messages from the interface. - ALL: both input and output messages into/from the interface.", + "type": "string", + "enum": [ + "IN", + "OUT", + "ALL" + ] + }, + "matchingPatterns": { + "description": "Patterns to be matched in the interface message. If provided, only messages that match all the values provided in the sub-attributes shall be logged. An API consumer can provide more than one \"matchingPattern\" if combinations of patterns are to be considered to match diverse sets of interface messages.", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "required": [ + "srcIpAddress" + ] + }, + { + "required": [ + "dstIpAddress" + ] + }, + { + "required": [ + "requestMethod" + ] + }, + { + "required": [ + "requestUriPattern" + ] + }, + { + "required": [ + "responseCodes" + ] + } + ], + "properties": { + "srcIpAddress": { + "description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons.\n", + "type": "string", + "format": "IP" + }, + "requestMethod": { + "description": "HTTP request method to be matched. To match, the HTTP request method of the message shall be the same as the value of this attribute. Valid values are specified in IETF RFC 7231. The API producer shall support this attribute.", + "type": "string" + }, + "requestUriPattern": { + "description": "Substring to be matched in the request URI. To match, the request URI shall include the value of\n this attribute as a substring. This is typically used to match messages which associate to RESTful\n resources, or to a specific API (e.g., by using the \"apiName\" of the API). The API producer shall\n support this attribute.", + "type": "string" + }, + "dstIpAddress": { + "description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons.\n", + "type": "string", + "format": "IP" + }, + "responseCodes": { + "description": "HTTP response codes or patterns to match. A list of all valid HTTP response codes and their specification documents can be obtained from the HTTP status code registry. In addition, if supported, the following patterns may be used (case-insensitive): - \"1XX\": for matching any kind of informational response. - \"2XX\": for matching any kind of success response. - \"3XX\": for matching any kind redirection response. - \"4XX\": for matching any kind of client error response. - \"5XX\": for matching any kind of server error response.\nThe API producer shall support this attribute", + "type": "array", + "items": { + "type": "string" + } + }, + "headerField": { + "description": "Name of the header field to be matched. The header field name shall be one of the supported fields in a request message as defined in clause 4.2.2 of ETSI GS NFV-SOL 013 or in a response message as defined in clause 4.2.3 of ETSI GS NFV-SOL 013, in accordance with the \"direction\" criteria input. The API producer may support this attribute.", + "type": "string" + }, + "headerValue": { + "description": "Value in the header to be matched. To match, the value in the header field indicated by \"headerField\" shall be the same as in this attribute. Shall be provided if a \"headerField\" is provided. The API producer may support this attribute.", + "type": "string" + }, + "bodyValues": { + "description": "A list of strings to be matched in the body part of the interface message (e.g., the body of an HTTP message). If provided, only messages with text in the body part containing all the values from the list shall match the filter. In addition to a matching filter for the body of the message, a corresponding \"headerField\" filter shall also be provided, with \"headerField\" set to \"Content-Type\", to restrict matching to appropriate textual payloads such as \"application/json\" or \"text/plain\". The API producer may support this attribute", + "type": "string" + } + } + } + } + } + }, + "servicesLogDetail": { + "description": "This type represents criteria for logging jobs to collect logged messages about processes pertaining to NFV-MANO services. It shall comply with the provisions defined in table 8.6.3.4-1.", + "type": "object", + "properties": { + "logGarbageCollection": { + "description": "Indicates to collect logged information about garbage collection processes associated to NFV-MANO services.", + "type": "boolean" + } + } + }, + "systemLogDetail": { + "description": "This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional entity. It shall comply with the provisions defined in table 8.6.3.5-1.", + "type": "object", + "required": [ + "systemLogs", + "severityLevel" + ], + "properties": { + "systemLogs": { + "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" + }, + "severityLevelScheme": { + "description": "Identifies a severity level scheme. The default value is \"rfc5424\", which represents the set of values specified in the clause 6.2.1, table 2 of IETF RFC 5424. Other values may be used to signal different schemes.", + "type": "string" + }, + "severityLevel": { + "description": "The severity level, which determines the severity of the system messages to collect. The NFV-MANO functional entity shall collect system log messages, as indicated by the \"systemLogs\" attribute, with severity levels lower (i.e., more severe) or equal to the value provided by this present attribute.", + "type": "number" + } + } + } + } + }, + "jobConfig": { + "description": "This type represents configuration data for a logging job. It shall comply with the provisions defined in table 8.6.3.6-1. NOTE: The present document version does not specify the support for \"log compilation and reporting based on events\" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031.", + "type": "object", + "required": [ + "reportingCondition", + "securityConf" + ], + "properties": { + "startTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "endTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "reportingCondition": { + "description": "Specifies the condition under which the producer will report to the consumer about the compiled log data.", + "required": [ + "reportingType" + ], + "properties": { + "reportingType": { + "description": "Specifies the type of reporting condition. Permitted values: - REPORTING_ON_COMPILATION: the producer shall notify the consumer once the compilation of the\n collected logging data into a file is completed and a new log report is available.\n- NO_REPORTING: no reporting is requested (the consumer can query the logging jobs to know about the\n availability of new log reports).", + "type": "string", + "enum": [ + "REPORTING_ON_COMPILATION", + "NO_REPORTING" + ] + }, + "minimumReportingPeriod": { + "description": "Specifies the minimum periodicity at which the producer will report to the consumer about the collected log information, in seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "compileBySizeValue": { + "description": "An indicative size threshold for compiling the collected log data, in bytes. It is used when the compilation is based on the size of the collected log data. If not present, a default value as specified with the \"defaultLogCompileBySizeValue\" configuration in the \"ManoEntityConfigurableParams\" shall be used", + "type": "integer", + "format": "int32" + }, + "compileByTimerValue": { + "description": "The periodicity threshold for compiling the filtered log, in seconds. It is used when the compilation is based on a timer (e.g., every 24 hours). If not present, a default value as specified with the \"defaultLogCompileByTimerValue\" configuration in the \"ManoEntityConfigurableParams\" shall be used", + "type": "integer", + "format": "int32" + }, + "securityConf": { + "description": "Configuration about the security aspects of the logging job.", + "type": "object", + "properties": { + "logFileEncryption": { + "description": "Information about the encryption of the compiled log files. Shall be present if the log file is requested to be encrypted.", + "required": [ + "encryptionCertificate", + "cipherAlgorithm" + ], + "type": "object", + "properties": { + "encryptionCertificate": { + "description": "X.509 certificate with the public key to use for the encryption of the compiled log file.", + "type": "string" + }, + "cipherAlgorithm": { + "description": "Cryptographic algorithm to be used for the encryption of the compiled log file. More than one algorithm can be provided from higher (lower array index) to lower (higher array index) precedence. Valid values are: \"AES-CBC-128\", \"AES-GCM-128\", \"AES-CBC-256\", and \"AES-GCM-256\", as specified in clause 6.5 of ETSI GS NFV-SEC 012", + "type": "array", + "items": { + "type": "string", + "minItems": 1 + } + }, + "encryptAndSignOrder": { + "description": "Indication about the order in signing and encrypting the compiled log file. Valid values are: \"encryptFirst\", to apply the order \"first encrypt, then sign\", and \"signFirst\" for the order \"first sign, then encrypt\". Default value is \"encryptFirst\".", + "type": "string" + } + } + }, + "logTransferSecurity": { + "description": "Information about the security measures for retrieving/accessing the compiled log files.", + "type": "object", + "properties": { + "publicKey": { + "description": "The public key of the API consumer used for the client authentication with the file server. Shall be provided if required by the type of transfer protocol. May be omitted if the key has been provided to the API producer by other means, or if it has already been provided in some previous CreateLoggingJobRequest issued by the same API consumer, whose public key has not changed.", + "type": "string" + } + } + } + } + } + } + }, + "logReports": { + "description": "Information about available log reports created by the logging job.", + "type": "array", + "items": { + "type": "object", + "required": [ + "logReportId", + "logReportLoc" + ], + "properties": { + "logReportId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "logReportLoc": { + "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" + } + } + } + } + } + }, + "_links": { + "description": "Links for this resource.", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objects": { + "description": "Links to resources representing the object instances that are logged. Shall be present if the logged object instance information is accessible as a resource.", + "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" + } + } + } + } + } + } + } + } \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/schemas/LoggingJobs.schema.json b/SOL009/NFVMANOLogManagement-API/schemas/LoggingJobs.schema.json new file mode 100644 index 000000000..92df600dc --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/schemas/LoggingJobs.schema.json @@ -0,0 +1,356 @@ +{ + "type": "array", + "items": { + "description": "This type represents a logging job. It shall comply with the provisions defined in table 8.6.2.6-1.", + "type": "object", + "required": [ + "id", + "objectInstanceIds", + "jobCriteria", + "jobConfig", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "objectInstanceIds": { + "description": "Identifiers of the object instance for which logging information is collected. This attribute shall contain the identifier of the instance of the object that is logged according to their type.", + "type": "array", + "items": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + } + }, + "jobCriteria": { + "description": "This type represents collection criteria for logging jobs. It shall comply with the provisions defined in table 8.6.3.2-1.", + "type": "object", + "required": [ + "loggingType" + ], + "properties": { + "loggingType": { + "description": "Type of logging. This defines the types of logged information to collect.\nPermitted values: - MESSAGES: logged NFV-MANO service interface messages. - SERVICES: logged messages about processes pertaining to NFV-MANO services. - SYSTEM: logged messages about the NFV-MANO functional entity’s system enabled by the provider.", + "type": "string", + "enum": [ + "MESSAGES", + "SERVICES", + "SYSTEM" + ] + }, + "messagesLogDetail": { + "description": "This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. It shall comply with the provisions defined in table 8.6.3.3-1.", + "type": "object", + "required": [ + "direction" + ], + "properties": { + "direction": { + "description": "The direction of the interface messages to match.\nPermitted values: - IN: input messages into the interface. - OUT: output messages from the interface. - ALL: both input and output messages into/from the interface.", + "type": "string", + "enum": [ + "IN", + "OUT", + "ALL" + ] + }, + "matchingPatterns": { + "description": "Patterns to be matched in the interface message. If provided, only messages that match all the values provided in the sub-attributes shall be logged. An API consumer can provide more than one \"matchingPattern\" if combinations of patterns are to be considered to match diverse sets of interface messages.", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "required": [ + "srcIpAddress" + ] + }, + { + "required": [ + "dstIpAddress" + ] + }, + { + "required": [ + "requestMethod" + ] + }, + { + "required": [ + "requestUriPattern" + ] + }, + { + "required": [ + "responseCodes" + ] + } + ], + "properties": { + "srcIpAddress": { + "description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons.\n", + "type": "string", + "format": "IP" + }, + "requestMethod": { + "description": "HTTP request method to be matched. To match, the HTTP request method of the message shall be the same as the value of this attribute. Valid values are specified in IETF RFC 7231. The API producer shall support this attribute.", + "type": "string" + }, + "requestUriPattern": { + "description": "Substring to be matched in the request URI. To match, the request URI shall include the value of\n this attribute as a substring. This is typically used to match messages which associate to RESTful\n resources, or to a specific API (e.g., by using the \"apiName\" of the API). The API producer shall\n support this attribute.", + "type": "string" + }, + "dstIpAddress": { + "description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons.\n", + "type": "string", + "format": "IP" + }, + "responseCodes": { + "description": "HTTP response codes or patterns to match. A list of all valid HTTP response codes and their specification documents can be obtained from the HTTP status code registry. In addition, if supported, the following patterns may be used (case-insensitive): - \"1XX\": for matching any kind of informational response. - \"2XX\": for matching any kind of success response. - \"3XX\": for matching any kind redirection response. - \"4XX\": for matching any kind of client error response. - \"5XX\": for matching any kind of server error response.\nThe API producer shall support this attribute", + "type": "array", + "items": { + "type": "string" + } + }, + "headerField": { + "description": "Name of the header field to be matched. The header field name shall be one of the supported fields in a request message as defined in clause 4.2.2 of ETSI GS NFV-SOL 013 or in a response message as defined in clause 4.2.3 of ETSI GS NFV-SOL 013, in accordance with the \"direction\" criteria input. The API producer may support this attribute.", + "type": "string" + }, + "headerValue": { + "description": "Value in the header to be matched. To match, the value in the header field indicated by \"headerField\" shall be the same as in this attribute. Shall be provided if a \"headerField\" is provided. The API producer may support this attribute.", + "type": "string" + }, + "bodyValues": { + "description": "A list of strings to be matched in the body part of the interface message (e.g., the body of an HTTP message). If provided, only messages with text in the body part containing all the values from the list shall match the filter. In addition to a matching filter for the body of the message, a corresponding \"headerField\" filter shall also be provided, with \"headerField\" set to \"Content-Type\", to restrict matching to appropriate textual payloads such as \"application/json\" or \"text/plain\". The API producer may support this attribute", + "type": "string" + } + } + } + } + } + }, + "servicesLogDetail": { + "description": "This type represents criteria for logging jobs to collect logged messages about processes pertaining to NFV-MANO services. It shall comply with the provisions defined in table 8.6.3.4-1.", + "type": "object", + "properties": { + "logGarbageCollection": { + "description": "Indicates to collect logged information about garbage collection processes associated to NFV-MANO services.", + "type": "boolean" + } + } + }, + "systemLogDetail": { + "description": "This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional entity. It shall comply with the provisions defined in table 8.6.3.5-1.", + "type": "object", + "required": [ + "systemLogs", + "severityLevel" + ], + "properties": { + "systemLogs": { + "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" + }, + "severityLevelScheme": { + "description": "Identifies a severity level scheme. The default value is \"rfc5424\", which represents the set of values specified in the clause 6.2.1, table 2 of IETF RFC 5424. Other values may be used to signal different schemes.", + "type": "string" + }, + "severityLevel": { + "description": "The severity level, which determines the severity of the system messages to collect. The NFV-MANO functional entity shall collect system log messages, as indicated by the \"systemLogs\" attribute, with severity levels lower (i.e., more severe) or equal to the value provided by this present attribute.", + "type": "number" + } + } + } + } + }, + "jobConfig": { + "description": "This type represents configuration data for a logging job. It shall comply with the provisions defined in table 8.6.3.6-1. NOTE: The present document version does not specify the support for \"log compilation and reporting based on events\" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031.", + "type": "object", + "required": [ + "reportingCondition", + "securityConf" + ], + "properties": { + "startTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "endTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "reportingCondition": { + "description": "Specifies the condition under which the producer will report to the consumer about the compiled log data.", + "required": [ + "reportingType" + ], + "properties": { + "reportingType": { + "description": "Specifies the type of reporting condition. Permitted values: - REPORTING_ON_COMPILATION: the producer shall notify the consumer once the compilation of the\n collected logging data into a file is completed and a new log report is available.\n- NO_REPORTING: no reporting is requested (the consumer can query the logging jobs to know about the\n availability of new log reports).", + "type": "string", + "enum": [ + "REPORTING_ON_COMPILATION", + "NO_REPORTING" + ] + }, + "minimumReportingPeriod": { + "description": "Specifies the minimum periodicity at which the producer will report to the consumer about the collected log information, in seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "compileBySizeValue": { + "description": "An indicative size threshold for compiling the collected log data, in bytes. It is used when the compilation is based on the size of the collected log data. If not present, a default value as specified with the \"defaultLogCompileBySizeValue\" configuration in the \"ManoEntityConfigurableParams\" shall be used", + "type": "integer", + "format": "int32" + }, + "compileByTimerValue": { + "description": "The periodicity threshold for compiling the filtered log, in seconds. It is used when the compilation is based on a timer (e.g., every 24 hours). If not present, a default value as specified with the \"defaultLogCompileByTimerValue\" configuration in the \"ManoEntityConfigurableParams\" shall be used", + "type": "integer", + "format": "int32" + }, + "securityConf": { + "description": "Configuration about the security aspects of the logging job.", + "type": "object", + "properties": { + "logFileEncryption": { + "description": "Information about the encryption of the compiled log files. Shall be present if the log file is requested to be encrypted.", + "required": [ + "encryptionCertificate", + "cipherAlgorithm" + ], + "type": "object", + "properties": { + "encryptionCertificate": { + "description": "X.509 certificate with the public key to use for the encryption of the compiled log file.", + "type": "string" + }, + "cipherAlgorithm": { + "description": "Cryptographic algorithm to be used for the encryption of the compiled log file. More than one algorithm can be provided from higher (lower array index) to lower (higher array index) precedence. Valid values are: \"AES-CBC-128\", \"AES-GCM-128\", \"AES-CBC-256\", and \"AES-GCM-256\", as specified in clause 6.5 of ETSI GS NFV-SEC 012", + "type": "array", + "items": { + "type": "string", + "minItems": 1 + } + }, + "encryptAndSignOrder": { + "description": "Indication about the order in signing and encrypting the compiled log file. Valid values are: \"encryptFirst\", to apply the order \"first encrypt, then sign\", and \"signFirst\" for the order \"first sign, then encrypt\". Default value is \"encryptFirst\".", + "type": "string" + } + } + }, + "logTransferSecurity": { + "description": "Information about the security measures for retrieving/accessing the compiled log files.", + "type": "object", + "properties": { + "publicKey": { + "description": "The public key of the API consumer used for the client authentication with the file server. Shall be provided if required by the type of transfer protocol. May be omitted if the key has been provided to the API producer by other means, or if it has already been provided in some previous CreateLoggingJobRequest issued by the same API consumer, whose public key has not changed.", + "type": "string" + } + } + } + } + } + } + }, + "logReports": { + "description": "Information about available log reports created by the logging job.", + "type": "array", + "items": { + "type": "object", + "required": [ + "logReportId", + "logReportLoc" + ], + "properties": { + "logReportId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "logReportLoc": { + "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" + } + } + } + } + } + }, + "_links": { + "description": "Links for this resource.", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objects": { + "description": "Links to resources representing the object instances that are logged. Shall be present if the logged object instance information is accessible as a resource.", + "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" + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/schemas/ProblemDetails.schema.json b/SOL009/NFVMANOLogManagement-API/schemas/ProblemDetails.schema.json new file mode 100644 index 000000000..2af3ef9b3 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/schemas/ProblemDetails.schema.json @@ -0,0 +1 @@ +{ "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", "type": "object", "required": [ "status", "detail" ], "properties": { "type": { "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", "type": "string", "format": "URI" }, "title": { "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", "type": "string" }, "status": { "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", "type": "integer" }, "detail": { "description": "A human-readable explanation specific to this occurrence of the problem.\n", "type": "string" }, "instance": { "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", "type": "string", "format": "URI" } }} \ No newline at end of file -- GitLab From 0ffe876aa492d161d4f83433040aecc58ddbe54f Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 5 Aug 2020 15:16:37 +0500 Subject: [PATCH 049/116] Added Test Cases for IndividualLoggingJob.robot --- .../IndividualLoggingJob.robot | 97 +++++++++++++++++++ .../NFVMANOLogManagementKeywords.robot | 83 +++++++++++++++- .../environment/variables.txt | 5 +- 3 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot diff --git a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot new file mode 100644 index 000000000..2d3891671 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot @@ -0,0 +1,97 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Resource NFVMANOLogManagementKeywords.robot +Library JSONLibrary +Library OperatingSystem +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false + +*** Test Cases *** +POST Individual Logging Job - Method not implemented + [Documentation] Test ID: 8.3.4.2.1 + ... Test title: POST Individual Logging Job - method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create an Indiviual Logging + ... Pre-conditions: + ... Reference: clause 8.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Logging Job is not created on the NFV-MANO + Send Post request for individual Logging Job + Check HTTP Response Status Code Is 405 + Check Postcondition Logging Job is not Created + +GET individual Logging Job + [Documentation] Test ID: 8.3.4.2.2 + ... Test title: Get individual Logging Job + ... Test objective: The objective is to test the retrieval of an individual logging job and perform a JSON schema and content validation of the collected job data structure + ... Pre-conditions: Logging Job is already created. + ... Reference: clause 8.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual Logging Job + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PmJob + Check HTTP Response Body Logging Job Identifier matches the requested Logging Job + +GET individual Logging Job with invalid resource identifier + [Documentation] Test ID: 8.3.4.2.3 + ... Test title: Get individual Logging Job with invalid resource identifier + ... Test objective: The objective is to test that the retrieval of an individual logging job fails when using an invalid resource identifier, and perform the JSON schema validation of the failed operation HTTP response + ... Pre-conditions: Logging Job is already created. + ... Reference: clause 8.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual Logging Job with invalid resource identifier + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails + +PUT Individual Logging Job - Method not implemented + [Documentation] Test ID: 8.3.4.2.4 + ... Test title: PUT Individual Logging Job - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update an existing Logging Job + ... Pre-conditions: Logging Job is already created. + ... Reference: clause 8.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Logging Job is not modified by the operation + Send Put request for individual Logging Job + Check HTTP Response Status Code Is 405 + +PATCH Individual Logging Job - Method not implemented + [Documentation] Test ID: 8.3.4.2.5 + ... Test title: PATCH Individual Logging Job - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new Logging Job + ... Pre-conditions: Logging Job is already created. + ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Logging Job is not modified by the operation + Send Patch request for individual Logging Job + Check HTTP Response Status Code Is 405 + +DELETE Individual Logging Job + [Documentation] Test ID: 8.3.4.2.6 + ... Test title: DELETE Individual Logging Job + ... Test objective: The objective is to test the deletion of an individual logging job + ... Pre-conditions: Logging Job is already created. + ... Reference: clause 8.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Logging Job is no more available. + Send Delete request for individual Logging Job + Check HTTP Response Status Code Is 204 + Check Postcondition Logging Job is Deleted + +DELETE Individual Logging Job with invalid resource identifier + [Documentation] Test ID: 8.3.4.2.7 + ... Test title: DELETE Individual Logging Job with invalid resource identifier + ... Test objective: The objective is to test that the deletion of an individual logging job fails when using an invalid resource identifier + ... Pre-conditions: Logging Job is already created. + ... Reference: clause 8.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual Logging Job with invalid resource identifier + Check HTTP Response Status Code Is 404 diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index 09b1b3c61..6da78859e 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -130,4 +130,85 @@ DELETE Logging Jobs Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs ${outputResponse}= Output response - Set Global Variable @{response} ${outputResponse} \ No newline at end of file + Set Global Variable @{response} ${outputResponse} + +Send Post request for individual Logging Job + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Logging Job is not Created + Log Trying to get a new Logging Job + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 404 + +GET individual Logging Job + Log Trying to get a Pm Job + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check HTTP Response Body Logging Job Identifier matches the requested Logging Job + Log Going to validate Logging Job info retrieved + Should Be Equal ${response['body']['id']} ${logJobId} + Log Logging Job identifier as expected + + +GET individual Logging Job with invalid resource identifier + Log Trying to perform a negative get, using erroneous logging Job identifier + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Put request for individual Logging Job + Log Trying to perform a PUT (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch request for individual Logging Job + Log Trying to perform a PATCH (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Send Delete request for individual Logging Job + Log Trying to delete an existing logging Job + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Logging Job is Deleted + Log Check Postcondition + GET individual Logging Job + Check HTTP Response Status Code Is 404 + + +Send Delete request for individual Logging Job with invalid resource identifier + Log Trying to perform a negative delete, using erroneous Logging Job identifier + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${erroneousLogJobId} + ${output}= Output response + Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index f35315454..c2921c8a4 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -3,6 +3,9 @@ ${NFVMANOHOST} localhost ${NFVMANO_PORT} 8080 ${NFVMANO_SCHEMA} https +${logJobId} 0b000d4f1a2b67 +${erroneousLogJobId} wrongID + ${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 ${NEG_AUTHORIZATION} Bearer negativetoken @@ -36,4 +39,4 @@ ${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies. ${alarm_filter} id ${filter_value} 50daca910b000d4f1a2b675d604257e42 -${fields} \ No newline at end of file +${fields} -- GitLab From 2810f79a528e4887a4e5fa97688166530f26fa96 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 6 Aug 2020 11:21:48 +0500 Subject: [PATCH 050/116] Added Test Cases for IndividualReport.robot --- .../IndividualReport.robot | 97 ++++++++++ .../NFVMANOLogManagementKeywords.robot | 72 ++++++- .../environment/variables.txt | 5 + .../schemas/LogReport.schema.json | 176 ++++++++++++++++++ 4 files changed, 349 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVMANOLogManagement-API/IndividualReport.robot create mode 100644 SOL009/NFVMANOLogManagement-API/schemas/LogReport.schema.json diff --git a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot new file mode 100644 index 000000000..66a8e04a3 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot @@ -0,0 +1,97 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Resource NFVMANOLogManagementKeywords.robot +Library JSONLibrary +Library OperatingSystem +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false + +*** Test Cases *** +POST Individual Log Report - Method not implemented + [Documentation] Test ID: 8.3.4.3.1 + ... Test title: POST Individual Log Report - Method not implemented + ... Test objective: The objective is to test that POST method is not allowed to create a new log report. + ... Pre-conditions: Logging Job is already created. + ... Reference: clause 8.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The log report is not created. + Send Post request for Individual Log Report + Check HTTP Response Status Code Is 405 + Check Postcondition Individual Log Report is not Created + +Get Individual Log Report + [Documentation] Test ID: 8.3.4.3.2 + ... Test title: Get Individual Log Report + ... Test objective: The objective is to test the retrieval of an individual log report and perform a JSON schema validation of the collected report data structure + ... Pre-conditions: One or more log reports are set. + ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Log Report + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LogReport + +Get Individual Log Report (asynchronous) + [Documentation] Test ID: 8.3.4.3.3 + ... Test title: Get Individual Log Report (asynchronous) + ... Test objective: The objective is to test the retrieval of an individual log report is ongoing and no log report is available yet. + ... Pre-conditions: One or more log reports are set. + ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Log Report + Check HTTP Response Status Code Is 202 + +Get Individual Log Report with invalid resource endpoint + [Documentation] Test ID: 8.3.4.3.4 + ... Test title: Get Individual Log Report with invalid resource endpoint + ... Test objective: The objective is to test that the retrieval of an individual log report fails when using an invalid resource endpoint. + ... Pre-conditions: One or more log reports are set. + ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Log Report with invalid resource endpoint + Check HTTP Response Status Code Is 404 + +PUT Individual Log Report - Method not implemented + [Documentation] Test ID: 8.3.4.3.5 + ... Test title: PUT Individual Log Report - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update an existing log report. + ... Pre-conditions: One or more log reports are set. + ... Reference: clause 8.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO log report is not modified by the operation + Send Put request for Individual Log Report + Check HTTP Response Status Code Is 405 + Check Postcondition Individual Log Report is Unmodified (Implicit) + +PATCH Individual Log Report - Method not implemented + [Documentation] Test ID: 8.3.4.3.6 + ... Test title: PATCH Individual Log Report - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to modify an existinglog report. + ... Pre-conditions: One or more log reports are set. + ... Reference: clause 8.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The log report is not modified by the operation + Send Patch request for Individual Log Report + Check HTTP Response Status Code Is 405 + Check Postcondition Individual Log Report is Unmodified (Implicit) + +DELETE Individual Log Report - Method not implemented + [Documentation] Test ID: 8.3.4.3.7 + ... Test title: DELETE Individual Log Report - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to delete an existing log report. + ... Pre-conditions: One or more log reports are set. + ... Reference: clause 8.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The log report is not deleted by the operation + Send Delete request for Individual Log Report + Check HTTP Response Status Code Is 405 + Check Postcondition Individual Log Report Exists diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index 6da78859e..ec0aab6af 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -204,7 +204,6 @@ Check Postcondition Logging Job is Deleted GET individual Logging Job Check HTTP Response Status Code Is 404 - Send Delete request for individual Logging Job with invalid resource identifier Log Trying to perform a negative delete, using erroneous Logging Job identifier Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -212,3 +211,74 @@ Send Delete request for individual Logging Job with invalid resource identifier DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${erroneousLogJobId} ${output}= Output response Set Suite Variable ${response} ${output} + +Send Post request for Individual Log Report + Log Trying to create new log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${newReportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Individual Log Report is not Created + Log Trying to get a new report + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${newReportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 404 + +Get Individual Log Report + Log Trying to get log report + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Individual Log Report with invalid resource endpoint + Log Trying to get a log report with invalid resource endpoint + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${erroneousReportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Put request for Individual Log Report + Log Trying to update log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${reportId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch request for Individual Log Report + Log Trying to update log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${reportId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for Individual Log Report + Log Trying to delete log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${reportId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Individual Log Report is Unmodified (Implicit) + Log Check Postcondition Log job is not modified + Get Individual Log Report + Log Check Response matches original report + ${report}= evaluate json.loads('''${response['body']}''') json + Should Be Equal ${origResponse['body']['readyTime']} ${report['readyTime']} + +Check Postcondition Individual Log Report Exists + Log Checking that report still exists + Get Individual Log Report + Check HTTP Response Status Code Is 200 diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index c2921c8a4..56e95e15e 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -25,6 +25,7 @@ ${apiMajorVersion} v1 ${apiName} nfvmanologm ${response} {} +${origResponse} {} ${callback_port} 9091 ${callback_uri} http://172.22.1.7:${callback_port} @@ -40,3 +41,7 @@ ${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies. ${alarm_filter} id ${filter_value} 50daca910b000d4f1a2b675d604257e42 ${fields} + +${reportId} 0fb4c875-e07f-46ca-a9dd-13907667a568 +${erroneousReportId} erroneousReportId +${newReportId} newReportId diff --git a/SOL009/NFVMANOLogManagement-API/schemas/LogReport.schema.json b/SOL009/NFVMANOLogManagement-API/schemas/LogReport.schema.json new file mode 100644 index 000000000..3e2d3219f --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/schemas/LogReport.schema.json @@ -0,0 +1,176 @@ +{ + "description": "This type represents a log report, which provides information about a compiled log and how to obtain it. It shall comply with the provisions defined in table 8.6.2.7-1.\n", + "type": "object", + "required": [ + "id", + "objectInstanceId", + "compilationTrigger", + "readyTime", + "fileFormat", + "fileLocationInfo", + "securityAndIntegrityInfo", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "objectInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "compilationTrigger": { + "description": "The trigger for the compilation of the log file.\nPermitted values: - ON_DEMAND: created based on explicit request by a client. - AUTOMATIC: created according to the logging job compilation configuration.", + "type": "string", + "enum": [ + "ON_DEMAND", + "AUTOMATIC" + ] + }, + "readyTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "expiryTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "fileSize": { + "description": "The size of the compiled log file in bytes, if known.", + "type": "integer", + "format": "int32" + }, + "fileFormat": { + "description": "The encoding used by the file.", + "type": "string" + }, + "fileLocationInfo": { + "description": "Location and address information of the compiled log file. The consumer can use this information to obtain the compiled log file.", + "type": "object", + "required": [ + "protocol", + "fileEndpoint" + ], + "properties": { + "protocol": { + "description": "Protocol over which the compiled log file can be retrieved.\nPermitted values: - HTTPS: transmission over HTTP Secure (HTTPS). - SFTP: transmission over SSH file transfer protocol (SFTP). - SCP: transmission over secure copy protocol (SCP). - FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228 [i.11],\n using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, \"private\" protection level shall be used.\n\nHTTPS shall be supported, and other protocols may be supported.", + "type": "string", + "enum": [ + "HTTPS", + "SFTP", + "SCP", + "FTPS" + ] + }, + "fileEndpoint": { + "description": "The host name (or IP address), optionally a port number (if the host with the compile log file uses a non-standard port number as per the supported transmission protocol), a valid file directory path, and the file name of the compiled log file, or a valid URL.", + "type": "string", + "format": "URI" + } + } + }, + "securityAndIntegrityInfo": { + "description": "Security and integrity information for the compilation of the log files.", + "type": "object", + "required": [ + "algorithm", + "hash", + "logFileSignature", + "signingCertificate" + ], + "properties": { + "algorithm": { + "description": "Algorithm used to generate the hash of the compiled log file. Only SHA-256 and SHA-512 shall be used", + "type": "string" + }, + "hash": { + "description": "The hexadecimal value of the hash of the compiled log file. The hash shall be computed from the encrypted compiled log file, in case the encryption applies.", + "type": "string" + }, + "encryptionPublicKey": { + "description": "Public key used for the encryption of the compiled log file. Shall be present if the compiled log file is encrypted.", + "type": "string" + }, + "cipherAlgorithm": { + "description": "The cryptographic algorithm used for the encryption. Shall be present if the compiled log file is encrypted. Valid values are: \"AES-CBC-128\", \"AES-GCM-128\", \"AES-CBC-256\", and \"AES-GCM-256\", as specified in clause 6.5 of ETSI GS NFV-SEC 012 [14].", + "type": "string" + }, + "logFileSignature": { + "description": "Signature to the compiled log file generated with the NFV-MANO functional entity’s private key, which is used to ensure the authenticity of the compiled log file. The signature shall be applied according to the \"encryptAndSignOrder\" of the \"LoggingJobConfig\".", + "type": "string" + }, + "signingCertificate": { + "description": "X.509 certificate with the NFV-MANO functional entity’s public key used for verifying the log report and compiled log file signatures.", + "type": "string" + } + } + }, + "_links": { + "description": "Links for this resource.", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + }, + "objects": { + "description": "Links to resources representing the object instances that are logged. Shall be present if the logged object instance information is accessible as a resource.", + "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" + } + } + } + } + } + } + } + } \ No newline at end of file -- GitLab From 2d75f3a68bcade5f9d9b28988be828bf14f7a50e Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 6 Aug 2020 16:35:07 +0500 Subject: [PATCH 051/116] Added Test Cases for CompileLogTask.robot --- .../CompileLogTask.robot | 113 ++++++++++++++++++ .../NFVMANOLogManagementKeywords.robot | 84 +++++++++++++ .../environment/variables.txt | 6 + .../jsons/compileLogRequest.json | 3 + .../jsons/createLoggingJobRequest.json | 12 +- 5 files changed, 212 insertions(+), 6 deletions(-) create mode 100644 SOL009/NFVMANOLogManagement-API/CompileLogTask.robot create mode 100644 SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json diff --git a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot new file mode 100644 index 000000000..d7a15dae4 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot @@ -0,0 +1,113 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Resource NFVMANOLogManagementKeywords.robot +Library JSONLibrary +Library OperatingSystem +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false + + +*** Test Cases *** +Request to compile the logged data into a file - Synchronous mode + [Documentation] Test ID: 8.3.4.4.1 + ... Test title: Request to compile the logged data into a file - Synchronous mode + ... Test objective: The objective is to request to compile the logged data into a file in synchronous mode and perform a JSON schema validation on the returned log report data structure + ... Pre-conditions: + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO can decide immediately what to respond to a compile request + ... Post-Conditions: The compiled log information is available. + Send Log data Request in Synchronous mode + Check HTTP Response Status Code Is 201 + Check Operation Occurrence Id + Check HTTP Response Body Json Schema Is LogReport + + +Request to compile the logged data into a file - Asynchronous mode + [Documentation] Test ID: 8.3.4.4.2 + ... Test title: Request to compile the logged data into a file - Asynchronous mode + ... Test objective: The objective is to request to compile the logged data into a file in asynchronous mode and perform a JSON schema validation on the returned log report data structure + ... Pre-conditions: + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: The NFV-MANO can not decide immediately what to respond to a compile request + ... Post-Conditions: The compiled log information is available. + Send Log data Request in Asynchronous mode + Check HTTP Response Status Code Is 202 + Check Operation Occurrence Id + Wait for compilation success notification + +Request to compile the logged data into a file - Already Processing + [Documentation] Test ID: 8.3.4.4.3 + ... Test title: Request to compile the logged data into a file - Already Processing + ... Test objective: The objective is to request to compile the logged data into a file when a log data compilation and report creation is already ongoing, or a log report has just been created, for the specified logging job at the time of processing the request and perform a JSON schema validation on the returned log report data structure + ... Pre-conditions: + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Send Log data Request + Check HTTP Response Status Code Is 303 + Check Operation Occurrence Id + +Request to compile the logged data into a file with unprocessable entity + [Documentation] Test ID: 8.3.4.4.4 + ... Test title: Request to compile the logged data into a file with unprocessable entity + ... Test objective: The objective is to test that the rrequest to compile the logged data into a file fails when error in request body. + ... Pre-conditions: + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Log data Request + Check HTTP Response Status Code Is 422 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Compiled Log Data - Method not implemented + [Documentation] Test ID: 8.3.4.4.5 + ... Test title: GET Compiled Log Data - Method not implemented + ... Test objective: The objective is to test that GET method is not allowed to retrieve compiled log data. + ... Pre-conditions: + ... Reference: clause 8.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Get Compiled Log Data + Check HTTP Response Status Code Is 405 + +PUT Compiled Log Data - Method not implemented + [Documentation] Test ID: 8.3.4.4.6 + ... Test title: PUT Compiled Log Data - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to update compiled log data. + ... Pre-conditions: + ... Reference: clause 8.5.6.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send PUT Compiled Log Data + Check HTTP Response Status Code Is 405 + +PATCH Compiled Log Data - Method not implemented + [Documentation] Test ID: 8.3.4.4.7 + ... Test title: PATCH Compiled Log Data - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to update compiled log data. + ... Pre-conditions: + ... Reference: clause 8.5.6.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send PATCH Compiled Log Data + Check HTTP Response Status Code Is 405 + +DELETE Compiled Log Data - Method not implemented + [Documentation] Test ID: 8.3.4.4.8 + ... Test title: DELETE Compiled Log Data - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to update compiled log data. + ... Pre-conditions: + ... Reference: clause 8.5.6.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send DELETE Compiled Log Data + Check HTTP Response Status Code Is 405 + \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index ec0aab6af..43b19ceca 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -282,3 +282,87 @@ Check Postcondition Individual Log Report Exists Log Checking that report still exists Get Individual Log Report Check HTTP Response Status Code Is 200 + +Send Log data Request in Synchronous mode + Log Request to compile the logged data into a file Synchronous mode + Pass Execution If ${SYNC_MODE} == 0 The compile process is asynchronous mode. 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/compileLogRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log ${body} + ${body}= Output response + Set Suite Variable &{response} ${body} + +Check Operation Occurrence Id + ${vnfLcmOpOccId}= Get Value From Json ${response['headers']} $..Location + Should Not Be Empty ${vnfLcmOpOccId} + +Send Log data Request in Asynchronous mode + Log Request to compile the logged data into a file Asynchronous mode + Pass Execution If ${SYNC_MODE} == 1 The compile process is synchronous mode. 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/compileLogRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log ${body} + ${body}= Output response + Set Suite Variable &{response} ${body} + + Wait for compilation success notification + Wait Until Keyword Succeeds ${retry} ${polling} Get success notification + +Get Success notification + log Trying to read an compiled file + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${response['headers']['Location']} + Log Validate Status code + Integer response status 200 + ${result} Output response body + Validate Json LogReport.schema.json ${result} + Log Validation OK + +Send Log data Request + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/createLoggingJobRequest.json + Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Get Compiled Log Data + Log Trying to delete log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Put Compiled Log Data + Log Trying to update log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch Compiled Log Data + Log Trying to update log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete Compiled Log Data + Log Trying to delete log report + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log + ${output}= Output response + Set Suite Variable ${response} ${output} + \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index 56e95e15e..f60078d7d 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -45,3 +45,9 @@ ${fields} ${reportId} 0fb4c875-e07f-46ca-a9dd-13907667a568 ${erroneousReportId} erroneousReportId ${newReportId} newReportId + +${SYNC_MODE} 1 + +${retry} 2 min +${polling} 10 sec + diff --git a/SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json b/SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json new file mode 100644 index 000000000..2d3240611 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json @@ -0,0 +1,3 @@ +{ + "objectInstanceId":"" +} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json b/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json index 77ec08188..a7d36a3e9 100644 --- a/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json +++ b/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json @@ -1,6 +1,6 @@ -{ - "objectInstanceIds":[], - "jobCriteria":{ - "loggingType":"MESSAGES" - } -} \ No newline at end of file +{ + "objectInstanceIds":[], + "jobCriteria":{ + "loggingType":"MESSAGES" + } +} -- GitLab From f805ef3d6867b5eeb26544e28f78d94753088282 Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 7 Aug 2020 10:55:00 +0500 Subject: [PATCH 052/116] Added Test Cases for Subscriptions.robot --- .../NFVMANOLogManagementKeywords.robot | 122 +++++++++++- .../Subscriptions.robot | 176 ++++++++++++++++++ .../environment/variables.txt | 2 + .../jsons/subscriptions.json | 6 + 4 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVMANOLogManagement-API/Subscriptions.robot create mode 100644 SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index 43b19ceca..d6efb3ecc 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -365,4 +365,124 @@ Send Delete Compiled Log Data DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log ${output}= Output response Set Suite Variable ${response} ${output} - \ No newline at end of file + +Create Sessions + Pass Execution If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 0 MockServer not necessary to run + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} + +Check Notification Endpoint + &{notification_request}= Create Mock Request Matcher GET ${callback_endpoint} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + + +Get all Subscriptions + [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"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + 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}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${filter_ok} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Subscriptions with invalid 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}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${filter_ko} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post Request for Subscription + Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + ${body_request}= Get File jsons/subscriptions.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${output}= Output response + Set Suite Variable ${response} ${output} + Run Keyword If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 1 + ... Check Notification Endpoint + +Check HTTP Response Body LogmSubscription Attributes Values Match the Issued Subscription + Log Check Response matches subscription + ${body}= Get File jsons/subscriptions.json + ${subscription}= evaluate json.loads('''${body}''') json + Should Be Equal As Strings ${response['body']['callbackUri']} ${subscription['callbackUri']} + +Check Postcondition Subscription Is Set + Log Check Postcondition subscription exist + Set Headers {"Accept": "${ACCEPT_JSON}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${response['body']['id']} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + +Send Post Request for Duplicated Subscription + Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body_request}= Get File jsons/subscriptions.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check HTTP Response Body Is Empty + Should Be Empty ${response['body']} + Log No json schema is provided. Validation OK + +Check Postcondition Subscription Resource Returned in Location Header Is Available + Log Going to check postcondition + GET ${response['headers']['Location']} + Integer response status 200 + Log Received a 200 OK as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + ${result}= Output response body + Validate Json LogmSubscription.schema.json ${result} + Log Validated LogmSubscription schema + ${body}= Get File jsons/subscriptions.json + ${subscription}= evaluate json.loads('''${body}''') json + Should Be Equal ${result['callbackUri']} ${subscription['callbackUri']} + Log Validated Issued subscription is same as original + +Send Put Request for Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch Request for Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete Request for Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Subscriptions Exists + Log Checking that subscriptions exists + Get all Subscriptions + Check HTTP Response Status Code Is 200 \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot new file mode 100644 index 000000000..be4af31d6 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot @@ -0,0 +1,176 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Resource NFVMANOLogManagementKeywords.robot +Library MockServerLibrary +Library Process +Suite Setup Create Sessions +Suite Teardown Terminate All Processes kill=true + +*** Test Cases *** +GET all Subscriptions + [Documentation] Test ID: 8.3.4.2.1 + ... Test title: GET all Subscriptions + ... Test objective: The objective is to test the retrieval list of active subscriptions list to log management notifications 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 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LogmSubscriptions + +GET Subscriptions with attribute-based filter + [Documentation] Test ID: 8.3.4.2.2 + ... Test title: GET Subscriptions with attribute-based filter + ... Test objective: The objective is to test the retrieval of active subscriptions list to log management notifications using attribute-based filter, perform a JSON schema validation of the collected indicators data structure, and verify that the retrieved information matches the issued attribute-based filters + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Subscriptions with attribute-based filters + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LogmSubscriptions + +GET Subscriptions with Paged Response + [Documentation] Test ID: 8.3.4.2.2 + ... Test title: GET Subscriptions with Paged Response + ... Test objective: The objective is to query information of active subscriptions list to log management notifications to get Paged Response. + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get all Subscriptions + Check HTTP Response Status Code Is 200 + Check LINK in Header + +GET Subscriptions - invalid attribute-based filter + [Documentation] Test ID: 8.3.4.2.4 + ... Test title: GET Subscriptions - invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of active subscriptions list to log management notifications 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 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Subscriptions with invalid attribute-based filters + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + + +GET Subscriptions - Bad Request Response too Big + [Documentation] Test ID: 8.3.4.2.5 + ... Test title: GET Subscriptions - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of active subscriptions list to log management notifications 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 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Subscriptions - invalid resource endpoint + [Documentation] Test ID: 8.3.4.2.6 + ... Test title: GET Subscriptions - invalid resource endpoint + ... Test objective: The objective is to test that the retrieval of active subscriptions list to log management notifications fails when using invalid resource endpoint. + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions + Check HTTP Response Status Code Is 404 + + +Create new Subscription + [Documentation] Test ID 8.3.4.2.7 + ... Test title: Create new Subscription + ... Test objective: The objective is to test the creation of a new subscription to log management notification and perform a JSON schema and content validation of the returned subscription data structure + ... Pre-conditions: + ... Reference: clause 8.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscription is successfully set and it matches the issued subscription + Send Post Request for Subscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is LogmSubscription + Check HTTP Response Body LogmSubscription Attributes Values Match the Issued Subscription + Check Postcondition Subscription Is Set + + +Create request for duplicated Subscription not creating duplicated subscriptions + [Tags] no-duplicated-subs + [Documentation] Test ID 8.3.4.2.8 + ... 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 8.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.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 + Send Post Request for Duplicated Subscription + Check HTTP Response Status Code Is 303 + Check HTTP Response Body Is Empty + Check HTTP Response Header Contains Location + Check Postcondition Subscription Resource Returned in Location Header Is Available + +Create request for duplicated Subscription creating duplicated subscriptions + [Tags] duplicated-subs + [Documentation] Test ID 8.3.4.2.9 + ... 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 8.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.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 + Send Post Request for Duplicated Subscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PmSubscription + Check HTTP Response Body LogmSubscription Attributes Values Match the Issued Subscription + Check Postcondition Subscription Is Set + +PUT Subscriptions - Method not implemented + [Documentation] Test ID 8.3.4.2.10 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Put Request for Subscriptions + Check HTTP Response Status Code Is 405 + +PATCH Subscriptions - Method not implemented + [Documentation] Test ID 8.3.4.2.11 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Patch Request for Subscriptions + Check HTTP Response Status Code Is 405 + +DELETE Subscriptions - Method not implemented + [Documentation] Test ID 8.3.4.2.12 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscriptions are not deleted by the failed operation + Send Delete Request for Subscriptions + Check HTTP Response Status Code Is 405 + Check Postcondition Subscriptions Exists diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index f60078d7d..dd59dda33 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -30,6 +30,8 @@ ${origResponse} {} ${callback_port} 9091 ${callback_uri} http://172.22.1.7:${callback_port} ${callback_endpoint} /nfvmanologm/subscriptions +${filter_ok} callbackUri=${callbackUri} +${filter_ko} erroneousFilter=erroneous ${callback_endpoint_error} /subs_404 ${sleep_interval} 20s diff --git a/SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json b/SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json new file mode 100644 index 000000000..3fcc4e59b --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json @@ -0,0 +1,6 @@ +{ + "callbackUri": "http://127.0.0.1/subscribe", + "filter": { + "notificationTypes": ["ThresholdCrossedNotification"] + } +} \ No newline at end of file -- GitLab From 69438f067dc7199067272fedec1db5f9b61eb87b Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 7 Aug 2020 10:57:49 +0500 Subject: [PATCH 053/116] fix TIDs --- .../Subscriptions.robot | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot index be4af31d6..2e92a3ab6 100644 --- a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot @@ -12,7 +12,7 @@ Suite Teardown Terminate All Processes kill=true *** Test Cases *** GET all Subscriptions - [Documentation] Test ID: 8.3.4.2.1 + [Documentation] Test ID: 8.3.4.5.1 ... Test title: GET all Subscriptions ... Test objective: The objective is to test the retrieval list of active subscriptions list to log management notifications and perform a JSON schema validation of the returned subscriptions data structure ... Pre-conditions: At least one subscription is available in the NFV-MANO. @@ -25,7 +25,7 @@ GET all Subscriptions Check HTTP Response Body Json Schema Is LogmSubscriptions GET Subscriptions with attribute-based filter - [Documentation] Test ID: 8.3.4.2.2 + [Documentation] Test ID: 8.3.4.5.2 ... Test title: GET Subscriptions with attribute-based filter ... Test objective: The objective is to test the retrieval of active subscriptions list to log management notifications using attribute-based filter, perform a JSON schema validation of the collected indicators data structure, and verify that the retrieved information matches the issued attribute-based filters ... Pre-conditions: At least one subscription is available in the NFV-MANO. @@ -38,7 +38,7 @@ GET Subscriptions with attribute-based filter Check HTTP Response Body Json Schema Is LogmSubscriptions GET Subscriptions with Paged Response - [Documentation] Test ID: 8.3.4.2.2 + [Documentation] Test ID: 8.3.4.5.3 ... Test title: GET Subscriptions with Paged Response ... Test objective: The objective is to query information of active subscriptions list to log management notifications to get Paged Response. ... Pre-conditions: At least one subscription is available in the NFV-MANO. @@ -51,7 +51,7 @@ GET Subscriptions with Paged Response Check LINK in Header GET Subscriptions - invalid attribute-based filter - [Documentation] Test ID: 8.3.4.2.4 + [Documentation] Test ID: 8.3.4.5.4 ... Test title: GET Subscriptions - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of active subscriptions list to log management notifications 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. @@ -65,7 +65,7 @@ GET Subscriptions - invalid attribute-based filter GET Subscriptions - Bad Request Response too Big - [Documentation] Test ID: 8.3.4.2.5 + [Documentation] Test ID: 8.3.4.5.5 ... Test title: GET Subscriptions - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of active subscriptions list to log management notifications 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. @@ -78,7 +78,7 @@ GET Subscriptions - Bad Request Response too Big Check HTTP Response Body Json Schema Is ProblemDetails GET Subscriptions - invalid resource endpoint - [Documentation] Test ID: 8.3.4.2.6 + [Documentation] Test ID: 8.3.4.5.6 ... Test title: GET Subscriptions - invalid resource endpoint ... Test objective: The objective is to test that the retrieval of active subscriptions list to log management notifications fails when using invalid resource endpoint. ... Pre-conditions: At least one subscription is available in the NFV-MANO. @@ -91,7 +91,7 @@ GET Subscriptions - invalid resource endpoint Create new Subscription - [Documentation] Test ID 8.3.4.2.7 + [Documentation] Test ID 8.3.4.5.7 ... Test title: Create new Subscription ... Test objective: The objective is to test the creation of a new subscription to log management notification and perform a JSON schema and content validation of the returned subscription data structure ... Pre-conditions: @@ -108,7 +108,7 @@ Create new Subscription Create request for duplicated Subscription not creating duplicated subscriptions [Tags] no-duplicated-subs - [Documentation] Test ID 8.3.4.2.8 + [Documentation] Test ID 8.3.4.5.8 ... 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. @@ -124,7 +124,7 @@ Create request for duplicated Subscription not creating duplicated subscriptions Create request for duplicated Subscription creating duplicated subscriptions [Tags] duplicated-subs - [Documentation] Test ID 8.3.4.2.9 + [Documentation] Test ID 8.3.4.5.9 ... 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. @@ -139,7 +139,7 @@ Create request for duplicated Subscription creating duplicated subscriptions Check Postcondition Subscription Is Set PUT Subscriptions - Method not implemented - [Documentation] Test ID 8.3.4.2.10 + [Documentation] Test ID 8.3.4.5.10 ... 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: At least one subscription is available in the NFV-MANO. @@ -151,7 +151,7 @@ PUT Subscriptions - Method not implemented Check HTTP Response Status Code Is 405 PATCH Subscriptions - Method not implemented - [Documentation] Test ID 8.3.4.2.11 + [Documentation] Test ID 8.3.4.5.11 ... 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: At least one subscription is available in the NFV-MANO. @@ -163,7 +163,7 @@ PATCH Subscriptions - Method not implemented Check HTTP Response Status Code Is 405 DELETE Subscriptions - Method not implemented - [Documentation] Test ID 8.3.4.2.12 + [Documentation] Test ID 8.3.4.5.12 ... 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: At least one subscription is available in the NFV-MANO. @@ -173,4 +173,4 @@ DELETE Subscriptions - Method not implemented ... Post-Conditions: The subscriptions are not deleted by the failed operation Send Delete Request for Subscriptions Check HTTP Response Status Code Is 405 - Check Postcondition Subscriptions Exists + Check Postcondition Subscriptions Exists \ No newline at end of file -- GitLab From 5c2e123bec3f333c17256db575ee0405762db1f9 Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 7 Aug 2020 11:12:38 +0500 Subject: [PATCH 054/116] LogmSchema Added --- .../schemas/LogmSubscription.schema.json | 153 +++++++++++++++++ .../schemas/LogmSubscriptions.schema.json | 155 ++++++++++++++++++ 2 files changed, 308 insertions(+) create mode 100644 SOL009/NFVMANOLogManagement-API/schemas/LogmSubscription.schema.json create mode 100644 SOL009/NFVMANOLogManagement-API/schemas/LogmSubscriptions.schema.json diff --git a/SOL009/NFVMANOLogManagement-API/schemas/LogmSubscription.schema.json b/SOL009/NFVMANOLogManagement-API/schemas/LogmSubscription.schema.json new file mode 100644 index 000000000..607b69aea --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/schemas/LogmSubscription.schema.json @@ -0,0 +1,153 @@ +{ + "description": "This type represents a subscription. It shall comply with the provisions defined in table 8.6.2.3-1.", + "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 log management events. It shall comply with the provisions defined in table 8.6.3.7-1. 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).", + "type": "object", + "properties": { + "objectInstanceFilter": { + "description": "This type represents subscription filter criteria to match NFV-MANO functional entities and their associated managed objects. It shall comply with the provisions defined in Table 4.3.2.2-1.", + "type": "object", + "anyOf": [ + { + "oneOf": [ + { + "required": [ + "manoServiceIds" + ] + }, + { + "required": [ + "manoServiceNames" + ] + } + ] + }, + { + "oneOf": [ + { + "required": [ + "manoServiceInterfaceIds" + ] + }, + { + "required": [ + "manoServiceInterfaceNames" + ] + } + ] + }, + { + "oneOf": [ + { + "required": [ + "consumedManoInterfaceIds" + ] + }, + { + "required": [ + "consumedManoInterfaceNames" + ] + } + ] + } + ], + "properties": { + "manoEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "manoServiceIds": { + "description": "If present, match NFV-MANO services with an instance identifier listed in this attribute.", + "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" + } + }, + "manoServiceNames": { + "description": "If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute.", + "type": "array", + "items": { + "type": "string" + } + }, + "manoServiceInterfaceIds": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance identifier listed in this attribute.", + "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" + } + }, + "manoServiceInterfaceNames": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in this attribute.", + "type": "array", + "items": { + "type": "string" + } + }, + "consumedManoInterfaceIds": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance identifier listed in this attribute.", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "consumedManoInterfaceNames": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance Name listed in this attribute.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "notificationTypes": { + "description": "Match particular notification types. Permitted values: - LogReportAvailableNotification", + "type": "string", + "enum": [ + "LogReportAvailableNotification" + ] + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links to resources related to this resource.", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/schemas/LogmSubscriptions.schema.json b/SOL009/NFVMANOLogManagement-API/schemas/LogmSubscriptions.schema.json new file mode 100644 index 000000000..75c0daedd --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/schemas/LogmSubscriptions.schema.json @@ -0,0 +1,155 @@ +{ "type": "array", + "items": { + "description": "This type represents a subscription. It shall comply with the provisions defined in table 8.6.2.3-1.", + "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 log management events. It shall comply with the provisions defined in table 8.6.3.7-1. 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).", + "type": "object", + "properties": { + "objectInstanceFilter": { + "description": "This type represents subscription filter criteria to match NFV-MANO functional entities and their associated managed objects. It shall comply with the provisions defined in Table 4.3.2.2-1.", + "type": "object", + "anyOf": [ + { + "oneOf": [ + { + "required": [ + "manoServiceIds" + ] + }, + { + "required": [ + "manoServiceNames" + ] + } + ] + }, + { + "oneOf": [ + { + "required": [ + "manoServiceInterfaceIds" + ] + }, + { + "required": [ + "manoServiceInterfaceNames" + ] + } + ] + }, + { + "oneOf": [ + { + "required": [ + "consumedManoInterfaceIds" + ] + }, + { + "required": [ + "consumedManoInterfaceNames" + ] + } + ] + } + ], + "properties": { + "manoEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "manoServiceIds": { + "description": "If present, match NFV-MANO services with an instance identifier listed in this attribute.", + "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" + } + }, + "manoServiceNames": { + "description": "If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute.", + "type": "array", + "items": { + "type": "string" + } + }, + "manoServiceInterfaceIds": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance identifier listed in this attribute.", + "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" + } + }, + "manoServiceInterfaceNames": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in this attribute.", + "type": "array", + "items": { + "type": "string" + } + }, + "consumedManoInterfaceIds": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance identifier listed in this attribute.", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "consumedManoInterfaceNames": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance Name listed in this attribute.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "notificationTypes": { + "description": "Match particular notification types. Permitted values: - LogReportAvailableNotification", + "type": "string", + "enum": [ + "LogReportAvailableNotification" + ] + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links to resources related to this resource.", + "type": "object", + "required": [ + "self" + ], + "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" + } + } + } + } + } + } + } +} \ No newline at end of file -- GitLab From 09a0485034a6fffea28a779174563e01bb7059b6 Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 7 Aug 2020 14:27:40 +0500 Subject: [PATCH 055/116] Added Test Cases for IndividualSubscription.robot --- .../IndividualSubscription.robot | 98 +++++++++++++++++++ .../NFVMANOLogManagementKeywords.robot | 81 ++++++++++++++- .../environment/variables.txt | 3 + 3 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot diff --git a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot new file mode 100644 index 000000000..22585149a --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot @@ -0,0 +1,98 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt # Generic Parameters +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Resource NFVMANOLogManagementKeywords.robot + +*** Test Cases *** +GET Individual Subscription + [Documentation] Test ID: 8.3.4.6.1 + ... 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 8.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Subscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LogmSubscription + Check HTTP Response Body Subscription Identifier matches the requested Subscription + +GET Individual Subscription - invalid resource identifier + [Documentation] Test ID: 8.3.4.6.2 + ... 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 8.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 + +DELETE Individual Subscription + [Documentation] Test ID: 8.3.4.6.3 + ... 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 8.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The is not available anymore in the NFV-MANO + Send Delete request for individual Subscription + Check HTTP Response Status Code Is 204 + Check Postcondition Subscription is Deleted + +DELETE Individual Subscription - invalid resource identifier + [Documentation] Test ID: 8.3.4.6.4 + ... 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 8.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 + +POST Individual Subscription - Method not implemented + [Documentation] Test ID: 8.3.4.6.5 + ... 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: + ... Reference: clause 8.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The VNF Performance Subscription is not created on the NFV-MANO + Send Post request for individual Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition Subscription is not Created + +PUT Individual Subscription - Method not implemented + [Documentation] Test ID: 8.3.4.6.6 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscription is not modified by the operation + Send Put request for individual Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition Subscription is Unmodified (Implicit) + +PATCH Individual Subscription - Method not implemented + [Documentation] Test ID: 8.3.4.6.7 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 8.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscription is not modified by the operation + Send Patch request for individual Threshold + Check HTTP Response Status Code Is 405 + Check Postcondition Subscription is Unmodified (Implicit) \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index d6efb3ecc..198f96f6e 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -485,4 +485,83 @@ Send Delete Request for Subscriptions Check Postcondition Subscriptions Exists Log Checking that subscriptions exists Get all Subscriptions - Check HTTP Response Status Code Is 200 \ No newline at end of file + Check HTTP Response Status Code Is 200 + +Get Individual Subscription + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + 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 + Should Be Equal As Strings ${response['body']['id']} ${subscriptionId} + Log Subscription identifier as expected + +GET individual Subscription with invalid resource identifier + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for individual Subscription + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Subscription is Deleted + Log Check Postcondition Subscription is deleted + GET individual Subscription + Check HTTP Response Status Code Is 404 + +Send Delete request for individual Subscription with invalid resource identifier + Log Trying to delete a subscription in the VNFM with invalid id + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Post request for individual Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Put request for individual Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Patch request for individual Threshold + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Check Postcondition Subscription is Unmodified (Implicit) + Log Check postconidtion subscription not modified + GET individual Subscription + Log Check Response matches original Subscription + ${subscription}= evaluate json.loads('''${response['body']}''') json + Should Be Equal As Strings ${origResponse['body']['id']} ${subscription.id} + Should Be Equal As Strings ${origResponse['body']['callbackUri']} ${subscription.callbackUri} + +Check Postcondition Subscription is not Created + Log Trying to get a new subscription + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + Check HTTP Response Status Code Is 404 \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index dd59dda33..27017b956 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -53,3 +53,6 @@ ${SYNC_MODE} 1 ${retry} 2 min ${polling} 10 sec +${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa +${erroneousSubscriptionId} erroneousSubscriptionId +${newSubscriptionId} newSubsciptionId \ No newline at end of file -- GitLab From 8e6d2e877fd744604209f720c7b1d3adab71b362 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 10 Aug 2020 09:36:57 +0500 Subject: [PATCH 056/116] Added Test Cases for NotificationEndpoint.robot --- SOL009/NFVMANOLogManagement-API/environment/variables.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index 27017b956..5bdb72512 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -32,12 +32,16 @@ ${callback_uri} http://172.22.1.7:${callback_port} ${callback_endpoint} /nfvmanologm/subscriptions ${filter_ok} callbackUri=${callbackUri} ${filter_ko} erroneousFilter=erroneous +${callback_endpoint_fwd} /endpoint/check ${callback_endpoint_error} /subs_404 ${sleep_interval} 20s ${total_polling_time} 2 min ${polling_interval} 10 sec +${notification_request} [] +${notification_response} [] + ${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar ${alarm_filter} id -- GitLab From ea456d0e73ff30b2711febf28f73a6d4f5a495ab Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 10 Aug 2020 09:40:27 +0500 Subject: [PATCH 057/116] Added Schema and file for NotificationEndpoint.robot --- .../NotificationEndpoint.robot | 73 ++++++++++ ...LogReportAvailableNotification.schema.json | 126 ++++++++++++++++++ 2 files changed, 199 insertions(+) create mode 100644 SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot create mode 100644 SOL009/NFVMANOLogManagement-API/schemas/LogReportAvailableNotification.schema.json diff --git a/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot b/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot new file mode 100644 index 000000000..8ebf99df1 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot @@ -0,0 +1,73 @@ +*** Setting *** +Resource environment/variables.txt +Suite Setup Create Sessions +Suite Teardown Terminate All Processes kill=true +Library MockServerLibrary +Library Process +Library OperatingSystem +Library BuiltIn +Library Collections +Library String + + +*** Test Cases *** +Log Report Avaliable Notification + [Documentation] Test ID: 8.3.4.7.1 + ... Test title: Log Report Avaliable Notification + ... Test objective: The objective is to test the dispatch of Log Report Avaliable Notification when new log report is available 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: + ... Reference: clause 8.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Trigger the availability of Log Report (external action) + Check Log Report Available Notification Http POST Request Body Json Schema Is LogReportAvailableNotification + Check Log Report Available Notification Http POST Request Body notificationType attribute Is LogReportAvailableNotification + + +*** Keywords *** +Trigger the availability of Log Report (external action) + #do nothing + Log do nothing + + +Check Log Report Available Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check Log Report Available Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification Log Report Available Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Check Threshold Crossed Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + + +Configure Notification Log Report Available Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + + +Configure Notification Forward + [Arguments] ${schema} ${endpoint} ${endpoint_fwd} + Log Creating mock Http POST forward to handle ${schema} + &{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema} + &{notification_fwd}= Create Mock Http Forward ${endpoint_fwd} + Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd} + +Create Sessions + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/schemas/LogReportAvailableNotification.schema.json b/SOL009/NFVMANOLogManagement-API/schemas/LogReportAvailableNotification.schema.json new file mode 100644 index 000000000..e1d684399 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/schemas/LogReportAvailableNotification.schema.json @@ -0,0 +1,126 @@ +{ + "description": "This notification informs the receiver that the log report of the NFV-MANO functional entity is available. It shall comply with the provisions defined in table 8.6.2.4-1. The notification shall be triggered by the NFV-MANO functional entity when log information has been collected by the logging job and the log report is available.", + "type": "object", + "required": [ + "id", + "notificationType", + "subscriptionId", + "timeStamp", + "objectInstanceId", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"LogReportAvailableNotification\" for this notification type.", + "type": "string" + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "objectInstanceId": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "_links": { + "description": "Links to resources related to this notification.", + "type": "object", + "required": [ + "subscription", + "logReports" + ], + "properties": { + "subscription": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "objectInstance": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "LoggingJob": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "logReports": { + "description": "Link from which the available log report can be obtained. Due to the relationship of the logging job compilation and the logging information availability reporting, more than one logReport notification link can be provided.", + "type": "array", + "items": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative 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 c812fa60a6140700043a81704b65f2a9e3cd3286 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 10 Aug 2020 09:42:47 +0500 Subject: [PATCH 058/116] Added API for NFV-MANO Log Management --- .../SOL009-NFVMANOLogManagement-API.yaml | 25442 ++++++++++++++++ 1 file changed, 25442 insertions(+) create mode 100644 SOL009/NFVMANOLogManagement-API/SOL009-NFVMANOLogManagement-API.yaml diff --git a/SOL009/NFVMANOLogManagement-API/SOL009-NFVMANOLogManagement-API.yaml b/SOL009/NFVMANOLogManagement-API/SOL009-NFVMANOLogManagement-API.yaml new file mode 100644 index 000000000..481efd043 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/SOL009-NFVMANOLogManagement-API.yaml @@ -0,0 +1,25442 @@ +openapi: 3.0.2 +info: + version: '1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1' + title: SOL009 - NFV-MANO Log Management interface + description: > + SOL009 - NFV-MANO Log Management interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification + it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. + + Please report bugs to + https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + license: + name: ETSI Forge copyright notice + url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' +externalDocs: + description: ETSI GS NFV-SOL 009 V3.3.1 + url: >- + https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf +security: + - OauthSecurity: + - all +servers: + - url: 'http://127.0.0.1/nfvmanologm/v1' + - url: 'https://127.0.0.1/nfvmanologm/v1' +paths: + /api_versions: + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: false + schema: + type: string + - name: Authorization + description: 'The authorization token for the request. Reference: IETF RFC 7235' + in: header + required: false + schema: + type: string + get: + summary: Retrieve API version information + description: > + The GET method reads API version information. This method shall follow + the provisions specified in table 4.6.3.3.3.2-1 for request and response + data structures, and response codes. URI query parameters are not + supported. + responses: + '200': + description: > + 200 OK + + API version information was read successfully. The response body + shall contain 4.4 API version information, as defined in clause + 4.4.1.13. + content: + application/json: + schema: + description: | + This type represents API version information. + type: object + required: + - uriPrefix + - apiVersions + properties: + uriPrefix: + description: > + Specifies the URI prefix for the API, in the following + form {apiRoot}/{apiName}/{apiMajorVersion}/. + type: string + apiVersions: + description: > + Version(s) supported for the API signaled by the uriPrefix + attribute. + type: array + items: + type: object + required: + - version + properties: + version: + description: > + Identifies a supported version. The value of the + version attribute shall be a version identifier as + specified in clause 9.1 (SOL013). + type: string + isDeprecated: + description: > + If such information is available, this attribute + indicates whether use of the version signaled by the + version attribute is deprecated (true) or not + (false). + + A deprecated version is still supported by the API + producer but is recommended not to be used any + longer. When a version is no longer supported, it + does not appear in the response body. + type: boolean + retirementDate: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: The used API version. + schema: + type: string + maximum: 1 + minimum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '413': + description: > + 413 PAYLOAD TOO LARGE + + If the payload body of a request is larger than the amount of data + the API producer is willing or able to process, it shall respond + with this response code, following the provisions in IETF RFC 7231 + for the use of the "Retry-After" HTTP header and for closing the + connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '414': + description: > + 414 URI TOO LONG + + If the request URI of a request is longer than the API producer is + willing or able to process, it shall respond with this response + code. This condition can e.g. be caused by passing long queries in + the request URI of a GET request. The "ProblemDetails" structure may + be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '416': + description: | + 416 Range Not Satisfiable + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '429': + description: > + 429 TOO MANY REQUESTS + + If the API consumer has sent too many requests in a defined period + of time and the API producer is able to detect that condition ("rate + limiting"), the API producer shall respond with this response code, + following the provisions in IETF RFC 6585 [17] for the use of the + "Retry-After" HTTP header. The "ProblemDetails" structure shall be + provided and shall include in the "detail" attribute more + information about the source of the problem. + + The period of time and allowed number of requests are configured + within the API producer by means outside the scope of the present + document. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /log_jobs: + description: >- + This resource represents logging jobs. The API consumer can use this + resource to create and query logging jobs. + post: + description: >- + The POST method creates a logging job. This method shall follow the + provisions specified in the tables 8.5.3.3.1-1 and 8.5.3.3.1-2 for URI + query parameters, request and response data structures, and response + codes. As the result of successfully executing this method, a new + "Individual logging job" resource as defined in clause 9.5.4 shall have + been created. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: >- + This type represents a request to create a logging job. It shall + comply with the provisions defined in table 8.6.2.5-1. + content: + application/json: + schema: + description: Information on application context created by the MEC system + type: object + required: + - objectInstanceIds + - jobCriteria + - jobConfig + properties: + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is requested to be collected. This attribute + shall contain the identifier of the instance of the object + to be logged according to their type. If more than one + identifier is provided, values shall all refer to object + instances of the same type, for which the same criteria is + then applicable. + type: array + minItems: 1 + items: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. + It shall comply with the provisions defined in table + 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO service + interface messages. - SERVICES: logged messages about + processes pertaining to NFV-MANO services. - SYSTEM: + logged messages about the NFV-MANO functional entity’s + system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages on NFV-MANO service interfaces. + It shall comply with the provisions defined in table + 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the + interface. - ALL: both input and output messages + into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If + provided, only messages that match all the values + provided in the sub-attributes shall be logged. An + API consumer can provide more than one + "matchingPattern" if combinations of patterns are to + be considered to match diverse sets of interface + messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that consists + of four decimal integers separated by dots, + each integer ranging from 0 to 255. In case of + an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, + the HTTP request method of the message shall + be the same as the value of this attribute. + Valid values are specified in IETF RFC 7231. + The API producer shall support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To + match, the request URI shall include the value + of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that consists + of four decimal integers separated by dots, + each integer ranging from 0 to 255. In case of + an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A + list of all valid HTTP response codes and + their specification documents can be obtained + from the HTTP status code registry. In + addition, if supported, the following patterns + may be used (case-insensitive): - "1XX": for + matching any kind of informational response. - + "2XX": for matching any kind of success + response. - "3XX": for matching any kind + redirection response. - "4XX": for matching + any kind of client error response. - "5XX": + for matching any kind of server error + response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The + header field name shall be one of the + supported fields in a request message as + defined in clause 4.2.2 of ETSI GS NFV-SOL 013 + or in a response message as defined in clause + 4.2.3 of ETSI GS NFV-SOL 013, in accordance + with the "direction" criteria input. The API + producer may support this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, + the value in the header field indicated by + "headerField" shall be the same as in this + attribute. Shall be provided if a + "headerField" is provided. The API producer + may support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body + part of the interface message (e.g., the body + of an HTTP message). If provided, only + messages with text in the body part containing + all the values from the list shall match the + filter. In addition to a matching filter for + the body of the message, a corresponding + "headerField" filter shall also be provided, + with "headerField" set to "Content-Type", to + restrict matching to appropriate textual + payloads such as "application/json" or + "text/plain". The API producer may support + this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages about processes pertaining to + NFV-MANO services. It shall comply with the provisions + defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about + garbage collection processes associated to NFV-MANO + services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged system events of the NFV-MANO functional + entity. It shall comply with the provisions defined in + table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default + value is "rfc5424", which represents the set of + values specified in the clause 6.2.1, table 2 of + IETF RFC 5424. Other values may be used to signal + different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of + the system messages to collect. The NFV-MANO + functional entity shall collect system log messages, + as indicated by the "systemLogs" attribute, with + severity levels lower (i.e., more severe) or equal + to the value provided by this present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. + It shall comply with the provisions defined in table + 8.6.3.6-1. NOTE: The present document version does not + specify the support for "log compilation and reporting based + on events" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA + 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will + report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted + values: - REPORTING_ON_COMPILATION: the producer + shall notify the consumer once the compilation of + the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know about + the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected + log data, in bytes. It is used when the compilation is + based on the size of the collected log data. If not + present, a default value as specified with the + "defaultLogCompileBySizeValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered + log, in seconds. It is used when the compilation is + based on a timer (e.g., every 24 hours). If not present, + a default value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the logging + job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log + files. Shall be present if the log file is requested + to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for + the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More than + one algorithm can be provided from higher (lower + array index) to lower (higher array index) + precedence. Valid values are: "AES-CBC-128", + "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", + as specified in clause 6.5 of ETSI GS NFV-SEC + 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid values + are: "encryptFirst", to apply the order "first + encrypt, then sign", and "signFirst" for the + order "first sign, then encrypt". Default value + is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the + client authentication with the file server. + Shall be provided if required by the type of + transfer protocol. May be omitted if the key has + been provided to the API producer by other + means, or if it has already been provided in + some previous CreateLoggingJobRequest issued by + the same API consumer, whose public key has not + changed. + type: string + required: true + responses: + '201': + description: >- + The response body contains the Application Context as it was created + by the MEC system + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a logging job. It shall comply with the + provisions defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is collected. This attribute shall contain the + identifier of the instance of the object that is logged + according to their type. + type: array + items: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. + It shall comply with the provisions defined in table + 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO service + interface messages. - SERVICES: logged messages about + processes pertaining to NFV-MANO services. - SYSTEM: + logged messages about the NFV-MANO functional entity’s + system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages on NFV-MANO service + interfaces. It shall comply with the provisions + defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the + interface. - ALL: both input and output messages + into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. + If provided, only messages that match all the + values provided in the sub-attributes shall be + logged. An API consumer can provide more than one + "matchingPattern" if combinations of patterns are + to be considered to match diverse sets of + interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that + consists of four decimal integers separated + by dots, each integer ranging from 0 to 255. + In case of an IPV6 address, string that + consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, + the HTTP request method of the message shall + be the same as the value of this attribute. + Valid values are specified in IETF RFC 7231. + The API producer shall support this + attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. + To match, the request URI shall include the + value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that + consists of four decimal integers separated + by dots, each integer ranging from 0 to 255. + In case of an IPV6 address, string that + consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A + list of all valid HTTP response codes and + their specification documents can be + obtained from the HTTP status code registry. + In addition, if supported, the following + patterns may be used (case-insensitive): - + "1XX": for matching any kind of + informational response. - "2XX": for + matching any kind of success response. - + "3XX": for matching any kind redirection + response. - "4XX": for matching any kind of + client error response. - "5XX": for matching + any kind of server error response. + + The API producer shall support this + attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The + header field name shall be one of the + supported fields in a request message as + defined in clause 4.2.2 of ETSI GS NFV-SOL + 013 or in a response message as defined in + clause 4.2.3 of ETSI GS NFV-SOL 013, in + accordance with the "direction" criteria + input. The API producer may support this + attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, + the value in the header field indicated by + "headerField" shall be the same as in this + attribute. Shall be provided if a + "headerField" is provided. The API producer + may support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body + part of the interface message (e.g., the + body of an HTTP message). If provided, only + messages with text in the body part + containing all the values from the list + shall match the filter. In addition to a + matching filter for the body of the message, + a corresponding "headerField" filter shall + also be provided, with "headerField" set to + "Content-Type", to restrict matching to + appropriate textual payloads such as + "application/json" or "text/plain". The API + producer may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages about processes pertaining to + NFV-MANO services. It shall comply with the provisions + defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about + garbage collection processes associated to + NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged system events of the NFV-MANO + functional entity. It shall comply with the provisions + defined in table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default + value is "rfc5424", which represents the set of + values specified in the clause 6.2.1, table 2 of + IETF RFC 5424. Other values may be used to signal + different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity + of the system messages to collect. The NFV-MANO + functional entity shall collect system log + messages, as indicated by the "systemLogs" + attribute, with severity levels lower (i.e., more + severe) or equal to the value provided by this + present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. + It shall comply with the provisions defined in table + 8.6.3.6-1. NOTE: The present document version does not + specify the support for "log compilation and reporting + based on events" as specified in clause 6.6.2.2 of ETSI GS + NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will + report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. + Permitted values: - REPORTING_ON_COMPILATION: the + producer shall notify the consumer once the + compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know about + the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the + collected log data, in bytes. It is used when the + compilation is based on the size of the collected log + data. If not present, a default value as specified + with the "defaultLogCompileBySizeValue" configuration + in the "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered + log, in seconds. It is used when the compilation is + based on a timer (e.g., every 24 hours). If not + present, a default value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the + logging job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled + log files. Shall be present if the log file is + requested to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use + for the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More than + one algorithm can be provided from higher + (lower array index) to lower (higher array + index) precedence. Valid values are: + "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", + and "AES-GCM-256", as specified in clause 6.5 + of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid values + are: "encryptFirst", to apply the order "first + encrypt, then sign", and "signFirst" for the + order "first sign, then encrypt". Default + value is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for + the client authentication with the file + server. Shall be provided if required by the + type of transfer protocol. May be omitted if + the key has been provided to the API producer + by other means, or if it has already been + provided in some previous + CreateLoggingJobRequest issued by the same API + consumer, whose public key has not changed. + type: string + logReports: + description: >- + Information about available log reports created by the + logging job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: > + An identifier with the intention of being globally + unique. + type: string + logReportLoc: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances + that are logged. Shall be present if the logged object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + get: + description: >- + The API consumer can use this method to retrieve information about + logging jobs. This method shall follow the provisions specified in the + tables 8.5.3.3.2-1 and 8.5.3.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI + GS NFV-SOL 013. The NFV-MANO functional entity shall support + receiving this parameter as part of the URI query string. The API + consumer may supply this parameter. All attribute names that appear + in the FmSubscription and in data types referenced from it shall be + supported by the NFV-MANO functional entity in the filter + expression. + in: query + required: false + schema: + type: string + - name: all_fields + description: > + Include all complex attributes in the response. See clause 5.3 of + ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support + this parameter. + in: query + required: false + schema: + type: string + - name: fields + description: > + Complex attributes to be included into the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_fields + description: > + Complex attributes to be excluded from the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_default + in: query + description: >- + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: >- + Shall be returned when information about zero or more logging jobs + has been queried successfully. + + The response body shall contain in an array the representations of + zero or more logging jobs, as defined in clause 8.6.2.6. + + If the "filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or "exclude_default" + URI parameters was supplied in the request, the data in the response + body shall have been transformed according to the rules specified in + clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: >- + This type represents a logging job. It shall comply with the + provisions defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is collected. This attribute shall contain + the identifier of the instance of the object that is + logged according to their type. + type: array + items: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" + is supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging + jobs. It shall comply with the provisions defined in + table 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO + service interface messages. - SERVICES: logged + messages about processes pertaining to NFV-MANO + services. - SYSTEM: logged messages about the + NFV-MANO functional entity’s system enabled by the + provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages on NFV-MANO service + interfaces. It shall comply with the provisions + defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to + match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the + interface. - ALL: both input and output messages + into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. + If provided, only messages that match all the + values provided in the sub-attributes shall be + logged. An API consumer can provide more than + one "matchingPattern" if combinations of + patterns are to be considered to match diverse + sets of interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: + In case of an IPV4 address, string that + consists of four decimal integers + separated by dots, each integer ranging + from 0 to 255. In case of an IPV6 address, + string that consists of groups of zero to + four hexadecimal digits, separated by + colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To + match, the HTTP request method of the + message shall be the same as the value of + this attribute. Valid values are specified + in IETF RFC 7231. The API producer shall + support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request + URI. To match, the request URI shall + include the value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: + In case of an IPV4 address, string that + consists of four decimal integers + separated by dots, each integer ranging + from 0 to 255. In case of an IPV6 address, + string that consists of groups of zero to + four hexadecimal digits, separated by + colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. + A list of all valid HTTP response codes + and their specification documents can be + obtained from the HTTP status code + registry. In addition, if supported, the + following patterns may be used + (case-insensitive): - "1XX": for matching + any kind of informational response. - + "2XX": for matching any kind of success + response. - "3XX": for matching any kind + redirection response. - "4XX": for + matching any kind of client error + response. - "5XX": for matching any kind + of server error response. + + The API producer shall support this + attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. + The header field name shall be one of the + supported fields in a request message as + defined in clause 4.2.2 of ETSI GS NFV-SOL + 013 or in a response message as defined in + clause 4.2.3 of ETSI GS NFV-SOL 013, in + accordance with the "direction" criteria + input. The API producer may support this + attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To + match, the value in the header field + indicated by "headerField" shall be the + same as in this attribute. Shall be + provided if a "headerField" is provided. + The API producer may support this + attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the + body part of the interface message (e.g., + the body of an HTTP message). If provided, + only messages with text in the body part + containing all the values from the list + shall match the filter. In addition to a + matching filter for the body of the + message, a corresponding "headerField" + filter shall also be provided, with + "headerField" set to "Content-Type", to + restrict matching to appropriate textual + payloads such as "application/json" or + "text/plain". The API producer may support + this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages about processes pertaining + to NFV-MANO services. It shall comply with the + provisions defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about + garbage collection processes associated to + NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged system events of the NFV-MANO + functional entity. It shall comply with the + provisions defined in table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default + value is "rfc5424", which represents the set of + values specified in the clause 6.2.1, table 2 of + IETF RFC 5424. Other values may be used to + signal different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the + severity of the system messages to collect. The + NFV-MANO functional entity shall collect system + log messages, as indicated by the "systemLogs" + attribute, with severity levels lower (i.e., + more severe) or equal to the value provided by + this present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging + job. It shall comply with the provisions defined in + table 8.6.3.6-1. NOTE: The present document version does + not specify the support for "log compilation and + reporting based on events" as specified in clause + 6.6.2.2 of ETSI GS NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer + will report to the consumer about the compiled log + data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. + Permitted values: - REPORTING_ON_COMPILATION: + the producer shall notify the consumer once the + compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know + about the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the + collected log data, in bytes. It is used when the + compilation is based on the size of the collected + log data. If not present, a default value as + specified with the "defaultLogCompileBySizeValue" + configuration in the "ManoEntityConfigurableParams" + shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered + log, in seconds. It is used when the compilation is + based on a timer (e.g., every 24 hours). If not + present, a default value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the + logging job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled + log files. Shall be present if the log file is + requested to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use + for the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More + than one algorithm can be provided from + higher (lower array index) to lower (higher + array index) precedence. Valid values are: + "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", + and "AES-GCM-256", as specified in clause + 6.5 of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid + values are: "encryptFirst", to apply the + order "first encrypt, then sign", and + "signFirst" for the order "first sign, then + encrypt". Default value is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for + the client authentication with the file + server. Shall be provided if required by the + type of transfer protocol. May be omitted if + the key has been provided to the API + producer by other means, or if it has + already been provided in some previous + CreateLoggingJobRequest issued by the same + API consumer, whose public key has not + changed. + type: string + logReports: + description: >- + Information about available log reports created by the + logging job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: > + An identifier with the intention of being globally + unique. + type: string + logReportLoc: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances + that are logged. Shall be present if the logged + object instance information is accessible as a + resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/log_jobs/{logJobId}': + description: >- + This resource represents an individual logging job. The API consumer can + use this resource to delete and read the underlying logging job. + parameters: + - name: logJobId + in: path + description: Identifier of the logging job. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: >- + The API consumer can use this method for reading an individual logging + job. This method shall follow the provisions specified in the tables + 8.5.4.3.2-1 and 8.5.4.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: >- + Shall be returned when information about an individual logging job + has been read successfully. The response body shall contain a + representation of the "Individual logging job" resource, as defined + in clause 8.6.2.6. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a logging job. It shall comply with the + provisions defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is collected. This attribute shall contain the + identifier of the instance of the object that is logged + according to their type. + type: array + items: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. + It shall comply with the provisions defined in table + 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO service + interface messages. - SERVICES: logged messages about + processes pertaining to NFV-MANO services. - SYSTEM: + logged messages about the NFV-MANO functional entity’s + system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages on NFV-MANO service + interfaces. It shall comply with the provisions + defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the + interface. - ALL: both input and output messages + into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. + If provided, only messages that match all the + values provided in the sub-attributes shall be + logged. An API consumer can provide more than one + "matchingPattern" if combinations of patterns are + to be considered to match diverse sets of + interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that + consists of four decimal integers separated + by dots, each integer ranging from 0 to 255. + In case of an IPV6 address, string that + consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, + the HTTP request method of the message shall + be the same as the value of this attribute. + Valid values are specified in IETF RFC 7231. + The API producer shall support this + attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. + To match, the request URI shall include the + value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that + consists of four decimal integers separated + by dots, each integer ranging from 0 to 255. + In case of an IPV6 address, string that + consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A + list of all valid HTTP response codes and + their specification documents can be + obtained from the HTTP status code registry. + In addition, if supported, the following + patterns may be used (case-insensitive): - + "1XX": for matching any kind of + informational response. - "2XX": for + matching any kind of success response. - + "3XX": for matching any kind redirection + response. - "4XX": for matching any kind of + client error response. - "5XX": for matching + any kind of server error response. + + The API producer shall support this + attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The + header field name shall be one of the + supported fields in a request message as + defined in clause 4.2.2 of ETSI GS NFV-SOL + 013 or in a response message as defined in + clause 4.2.3 of ETSI GS NFV-SOL 013, in + accordance with the "direction" criteria + input. The API producer may support this + attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, + the value in the header field indicated by + "headerField" shall be the same as in this + attribute. Shall be provided if a + "headerField" is provided. The API producer + may support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body + part of the interface message (e.g., the + body of an HTTP message). If provided, only + messages with text in the body part + containing all the values from the list + shall match the filter. In addition to a + matching filter for the body of the message, + a corresponding "headerField" filter shall + also be provided, with "headerField" set to + "Content-Type", to restrict matching to + appropriate textual payloads such as + "application/json" or "text/plain". The API + producer may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages about processes pertaining to + NFV-MANO services. It shall comply with the provisions + defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about + garbage collection processes associated to + NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged system events of the NFV-MANO + functional entity. It shall comply with the provisions + defined in table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default + value is "rfc5424", which represents the set of + values specified in the clause 6.2.1, table 2 of + IETF RFC 5424. Other values may be used to signal + different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity + of the system messages to collect. The NFV-MANO + functional entity shall collect system log + messages, as indicated by the "systemLogs" + attribute, with severity levels lower (i.e., more + severe) or equal to the value provided by this + present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. + It shall comply with the provisions defined in table + 8.6.3.6-1. NOTE: The present document version does not + specify the support for "log compilation and reporting + based on events" as specified in clause 6.6.2.2 of ETSI GS + NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will + report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. + Permitted values: - REPORTING_ON_COMPILATION: the + producer shall notify the consumer once the + compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know about + the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the + collected log data, in bytes. It is used when the + compilation is based on the size of the collected log + data. If not present, a default value as specified + with the "defaultLogCompileBySizeValue" configuration + in the "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered + log, in seconds. It is used when the compilation is + based on a timer (e.g., every 24 hours). If not + present, a default value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the + logging job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled + log files. Shall be present if the log file is + requested to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use + for the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More than + one algorithm can be provided from higher + (lower array index) to lower (higher array + index) precedence. Valid values are: + "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", + and "AES-GCM-256", as specified in clause 6.5 + of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid values + are: "encryptFirst", to apply the order "first + encrypt, then sign", and "signFirst" for the + order "first sign, then encrypt". Default + value is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for + the client authentication with the file + server. Shall be provided if required by the + type of transfer protocol. May be omitted if + the key has been provided to the API producer + by other means, or if it has already been + provided in some previous + CreateLoggingJobRequest issued by the same API + consumer, whose public key has not changed. + type: string + logReports: + description: >- + Information about available log reports created by the + logging job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: > + An identifier with the intention of being globally + unique. + type: string + logReportLoc: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances + that are logged. Shall be present if the logged object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: >- + This method terminates an individual logging job. This method shall + follow the provisions specified in the tables 8.5.4.3.5-1 and + 8.5.4.3.5-2 for URI query parameters, request and response data + structures, and response codes. As the result of successfully executing + this method, the "Individual logging job" resource shall not exist any + longer + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: >- + Shall be returned when the logging job has been deleted + successfully. The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/log_jobs/{logJobId}/log_reports/{logReportId}': + description: "This resource represents an individual log report. The API consumer can use this resource to read information about a log report. The log report provides metadata information about a log and location information of the log file from where it can be obtained. NOTE:\tThe present document does not specify the mechanism how to retrieve the log files." + parameters: + - name: logJobId + in: path + description: Identifier of the logging job. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + - name: logReportId + in: path + description: Identifier of the report. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: >- + The API consumer can use this method for reading an individual log + report. This method shall follow the provisions specified in the tables + 8.5.5.3.2-1 and 8.5.5.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: >- + Shall be returned when information of an individual log report has + been read successfully. The response body shall contain a + representation of the "Individual log report" resource, as defined + in clause 8.6.2.7. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents a log report, which provides information + about a compiled log and how to obtain it. It shall comply + with the provisions defined in table 8.6.2.7-1. + type: object + required: + - id + - objectInstanceId + - compilationTrigger + - readyTime + - fileFormat + - fileLocationInfo + - securityAndIntegrityInfo + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + compilationTrigger: + description: >- + The trigger for the compilation of the log file. + + Permitted values: - ON_DEMAND: created based on explicit + request by a client. - AUTOMATIC: created according to the + logging job compilation configuration. + type: string + enum: + - ON_DEMAND + - AUTOMATIC + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: 'The size of the compiled log file in bytes, if known.' + type: integer + format: int32 + fileFormat: + description: The encoding used by the file. + type: string + fileLocationInfo: + description: >- + Location and address information of the compiled log file. + The consumer can use this information to obtain the + compiled log file. + type: object + required: + - protocol + - fileEndpoint + properties: + protocol: + description: >- + Protocol over which the compiled log file can be + retrieved. + + Permitted values: - HTTPS: transmission over HTTP + Secure (HTTPS). - SFTP: transmission over SSH file + transfer protocol (SFTP). - SCP: transmission over + secure copy protocol (SCP). - FTPS: transmission over + file transfer protocol secure (FTPS), as specified in + IETF RFC 2228 [i.11], + using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, "private" protection level shall be used. + + HTTPS shall be supported, and other protocols may be + supported. + type: string + enum: + - HTTPS + - SFTP + - SCP + - FTPS + fileEndpoint: + description: >- + The host name (or IP address), optionally a port + number (if the host with the compile log file uses a + non-standard port number as per the supported + transmission protocol), a valid file directory path, + and the file name of the compiled log file, or a valid + URL. + type: string + format: URI + securityAndIntegrityInfo: + description: >- + Security and integrity information for the compilation of + the log files. + type: object + required: + - algorithm + - hash + - logFileSignature + - signingCertificate + properties: + algorithm: + description: >- + Algorithm used to generate the hash of the compiled + log file. Only SHA-256 and SHA-512 shall be used + type: string + hash: + description: >- + The hexadecimal value of the hash of the compiled log + file. The hash shall be computed from the encrypted + compiled log file, in case the encryption applies. + type: string + encryptionPublicKey: + description: >- + Public key used for the encryption of the compiled log + file. Shall be present if the compiled log file is + encrypted. + type: string + cipherAlgorithm: + description: >- + The cryptographic algorithm used for the encryption. + Shall be present if the compiled log file is + encrypted. Valid values are: "AES-CBC-128", + "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", as + specified in clause 6.5 of ETSI GS NFV-SEC 012 [14]. + type: string + logFileSignature: + description: >- + Signature to the compiled log file generated with the + NFV-MANO functional entity’s private key, which is + used to ensure the authenticity of the compiled log + file. The signature shall be applied according to the + "encryptAndSignOrder" of the "LoggingJobConfig". + type: string + signingCertificate: + description: >- + X.509 certificate with the NFV-MANO functional + entity’s public key used for verifying the log report + and compiled log file signatures. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances + that are logged. Shall be present if the logged object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '202': + description: >- + Shall be returned if the creation of the log report is ongoing and + no log report is available yet (applicable in asynchronous mode of + the "Compile log task" resource). The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/log_jobs/{logJobId}/compile_log': + description: >- + This resource represents the "Compile log" operation. The API consumer can + use this resource to request compiling the logged data, collected via a + logging job, into a file and creating the associated log report. As the + result of successfully processing this request, a new "Individual log + report" resource shall be created. Two modes of operation, synchronous or + asynchronous, can take place depending on whether the NFV-MANO functional + entity can compile the log data and create the log report immediately. In + the synchronous case, which is indicated by responding with "201 Created", + the resource shall be created before the "201 Created" response is + returned. In the asynchronous case, which is indicated by responding with + "202 Accepted", the resource may be created after the response is + returned. + parameters: + - name: logJobId + in: path + description: Identifier of the logging job. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + post: + description: >- + The POST method requests to compile the logged data into a file and + create an associated log report. This method shall follow the provisions + specified in the tables 8.5.6.3.1-1 and 8.5.6.3.1-2 for URI query + parameters, request and response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: Log compilation request. + content: + application/json: + schema: + description: > + This type represents a request to compile the logged data + associated to an object instance. It shall comply with the + provisions defined in table 8.6.2.8-1. + type: object + properties: + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + required: true + responses: + '200': + description: >- + Shall be returned for a successful compilation of the log data and + creation of the associated log report (synchronous mode). The + response body shall contain a representation of the log report + resource, as defined in clause 8.6.2.7. The HTTP response shall + include a "Location" HTTP header that indicate the URI of the + "Individual log report" resource just created + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + URI of the "Individual log report" resource just created + schema: + type: string + content: + application/json: + schema: + description: > + This type represents a log report, which provides information + about a compiled log and how to obtain it. It shall comply + with the provisions defined in table 8.6.2.7-1. + type: object + required: + - id + - objectInstanceId + - compilationTrigger + - readyTime + - fileFormat + - fileLocationInfo + - securityAndIntegrityInfo + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + compilationTrigger: + description: >- + The trigger for the compilation of the log file. + + Permitted values: - ON_DEMAND: created based on explicit + request by a client. - AUTOMATIC: created according to the + logging job compilation configuration. + type: string + enum: + - ON_DEMAND + - AUTOMATIC + readyTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + fileSize: + description: 'The size of the compiled log file in bytes, if known.' + type: integer + format: int32 + fileFormat: + description: The encoding used by the file. + type: string + fileLocationInfo: + description: >- + Location and address information of the compiled log file. + The consumer can use this information to obtain the + compiled log file. + type: object + required: + - protocol + - fileEndpoint + properties: + protocol: + description: >- + Protocol over which the compiled log file can be + retrieved. + + Permitted values: - HTTPS: transmission over HTTP + Secure (HTTPS). - SFTP: transmission over SSH file + transfer protocol (SFTP). - SCP: transmission over + secure copy protocol (SCP). - FTPS: transmission over + file transfer protocol secure (FTPS), as specified in + IETF RFC 2228 [i.11], + using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, "private" protection level shall be used. + + HTTPS shall be supported, and other protocols may be + supported. + type: string + enum: + - HTTPS + - SFTP + - SCP + - FTPS + fileEndpoint: + description: >- + The host name (or IP address), optionally a port + number (if the host with the compile log file uses a + non-standard port number as per the supported + transmission protocol), a valid file directory path, + and the file name of the compiled log file, or a valid + URL. + type: string + format: URI + securityAndIntegrityInfo: + description: >- + Security and integrity information for the compilation of + the log files. + type: object + required: + - algorithm + - hash + - logFileSignature + - signingCertificate + properties: + algorithm: + description: >- + Algorithm used to generate the hash of the compiled + log file. Only SHA-256 and SHA-512 shall be used + type: string + hash: + description: >- + The hexadecimal value of the hash of the compiled log + file. The hash shall be computed from the encrypted + compiled log file, in case the encryption applies. + type: string + encryptionPublicKey: + description: >- + Public key used for the encryption of the compiled log + file. Shall be present if the compiled log file is + encrypted. + type: string + cipherAlgorithm: + description: >- + The cryptographic algorithm used for the encryption. + Shall be present if the compiled log file is + encrypted. Valid values are: "AES-CBC-128", + "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", as + specified in clause 6.5 of ETSI GS NFV-SEC 012 [14]. + type: string + logFileSignature: + description: >- + Signature to the compiled log file generated with the + NFV-MANO functional entity’s private key, which is + used to ensure the authenticity of the compiled log + file. The signature shall be applied according to the + "encryptAndSignOrder" of the "LoggingJobConfig". + type: string + signingCertificate: + description: >- + X.509 certificate with the NFV-MANO functional + entity’s public key used for verifying the log report + and compiled log file signatures. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances + that are logged. Shall be present if the logged object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '202': + description: >- + Shall be returned when the request has been accepted for processing, + and it is expected to take some time to compile the log file and + create the associated log report (asynchronous mode). The response + body shall be empty. The HTTP response shall include a "Location" + HTTP header that indicates the URI of the "Individual log report" + resource that will be created once the log file compilation is + completed. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The URI of the "Individual log report" resource that will be + created once the log file compilation is completed. + schema: + type: string + '303': + description: >- + Shall be returned when a log data compilation and report creation is + already ongoing, or a log report has just been created, for the + specified logging job at the time of processing the request. The + response body shall be empty. The HTTP response shall include a + "Location" HTTP header that contains the resource URI of the log + report resource just created, or to be created by the ongoing + compilation and report creation. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The URI of the log report resource just created, or to be + created by the ongoing compilation and report creation + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: >- + The general cause for this error and its handling is specified in + clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence + of the response body. Specifically, in case of this task resource, + the response code 422 shall also be returned if the + "objectInstanceId" value provided in the payload body of the request + does not correspond to an object instance for which log data is + being collected by the logging job represented by this resource. The + response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /subscriptions: + description: >- + This resource represents subscriptions. The client can use this resource + to subscribe to notifications related to NFV-MANO performance management + and to query its subscriptions. + post: + description: >- + The POST method creates a new subscription. This method shall follow the + provisions specified in the tables 8.5.7.3.1-1 and 8.5.7.3.1-2 for URI + query + parameters, request and response data structures, and response codes. + As the result of successfully executing this method, a new "Individual + subscription" resource as defined in clause 8.5.8 shall have been + created. This method shall not trigger any notification. Creation of two + "Individual subscription" resources with the same callbackURI and the + same filter can result in performance degradation and will provide + duplicates of notifications to the API consumer, and might make sense + only in very rare use cases. Consequently, the NFV-MANO functional + entity may either allow creating a new "Individual subscription" + resource if another "Individual subscription" resource with the same + filter and callbackUri already exists (in which case it shall return the + "201 Created" response code), or may decide to not create a duplicate + "Individual subscription" resource (in which case it shall return a "303 + See Other" response code referencing the existing "Individual + subscription" resource with the same filter and callbackUri). + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Content-Type + description: | + The MIME type of the body of the request. Reference: IETF RFC 7231 + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: Details of the subscription to be created + content: + application/json: + schema: + description: >- + Information on application context created by the MEC system + type: object + required: + - callbackUri + type: object + properties: + filter: + description: >- + This type represents a filter that can be used to subscribe + for notifications related to log management events. It shall + comply with the provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to + match NFV-MANO functional entities and their associated + managed objects. It shall comply with the provisions + defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance + identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed in + this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed in + this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization + which the API consumer is willing to accept when + receiving a notification. Permitted values: * BASIC: In + every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to + the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the + contained information has not been provisioned out of + band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType + is "OAUTH2_CLIENT_CREDENTIALS" and the contained + information has not been provisioned out of band. Shall + be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + clientPassword: + description: > + Client password to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + responses: + '201': + description: >- + Shall be returned when the subscription has been created + successfully. A representation of the created "Individual + subscription" resource shall be returned in the response body, as + defined in clause 8.6.2.3. The HTTP response shall include a + "Location" HTTP header that contains the resource URI of the created + "Individual subscription" resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + URI of the "Individual log report" resource just created + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a subscription. It shall comply with the + provisions defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: >- + This type represents a filter that can be used to + subscribe for notifications related to log management + events. It shall comply with the provisions defined in + table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. It shall comply with the + provisions defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an + instance identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed + in this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed + in this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: + - LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '303': + description: >- + Shall be returned when a subscription with the same callbackURI and + the same filter already exists and the policy of the NFV-MANO + functional entity is to not create redundant subscriptions. The HTTP + response shall include a "Location" HTTP header that contains the + resource URI of the existing "Individual subscription" resource. The + response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + URI of the "Individual log report" resource just created + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + callbacks: + LogReportAvailableNotification: + '{$request.body#/callbackUri}': + description: >- + This resource represents a notification endpoint for NFV-MANO log + management. The API producer can use this resource to send + notifications related to log management events to a subscribed API + consumer, which has provided the URI of this resource during the + subscription process. + post: + description: >- + The POST method delivers a notification regarding a log + management event from the API producer to the API consumer. The + API consumer shall have previously created an "Individual + subscription" resource with a matching filter. This method shall + follow the provisions specified in the tables 8.5.9.3.1-1 and + 8.5.9.3.1-2 for URI query parameters, request and response data + structures, and response codes. + parameters: + - name: Version + description: > + Version of the API requested to use when responding to this + request. + in: header + required: true + schema: + type: string + - name: Authorization + description: > + The authorization token for the request. Reference: IETF RFC + 7235. + in: header + required: false + schema: + type: string + requestBody: + description: Notification about the availability of a log report. + content: + application/json: + schema: + description: >- + This notification informs the receiver that the log + report of the NFV-MANO functional entity is available. + It shall comply with the provisions defined in table + 8.6.2.4-1. The notification shall be triggered by the + NFV-MANO functional entity when log information has been + collected by the logging job and the log report is + available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - objectInstanceId + - _links + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + notificationType: + description: >- + Discriminator for the different notification types. + Shall be set to "LogReportAvailableNotification" for + this notification type. + type: string + subscriptionId: + description: > + An identifier with the intention of being globally + unique. + type: string + timeStamp: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + objectInstanceId: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable + if attribute "manoEntityComponents" in + "ManoEntity" is supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being + globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + _links: + description: Links to resources related to this notification. + type: object + required: + - subscription + - logReports + properties: + subscription: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LoggingJob: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + logReports: + description: >- + Link from which the available log report can be + obtained. Due to the relationship of the logging + job compilation and the logging information + availability reporting, more than one logReport + notification link can be provided. + type: array + items: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative + URI. + type: object + required: + - href + properties: + href: + description: > + String formatted according to IETF RFC + 3986. + type: string + responses: + '204': + description: >- + Shall be returned when the notification has been delivered + successfully. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, + the specific cause has to be proper specified in the + "ProblemDetails" structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. + if the request URI contains incorrect query parameters or + the payload body contains a syntactically incorrect data + structure), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be + provided, and should include in the "detail" attribute more + information about the source of the problem. + + If the response to a GET request which queries a container + resource would be so big that the performance of the API + producer is adversely affected, and the API producer does + not support paging for the affected resource, it shall + respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the + "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's + input that cannot be easily mapped to any other HTTP + response code ("catch all error"), the API producer shall + respond with this response code. The "ProblemDetails" + structure shall be provided, and shall include in the + "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API + producer should respond with this response. The details of + the error shall be returned in the WWW Authenticate HTTP + header, as defined in IETF RFC 6750 and IETF RFC 7235. The + ProblemDetails structure may be provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization + of API requests and notifications, as defined in clauses + 4.5.3.3 and 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is + required, or if the request contains an authorization token + that is invalid (e.g. expired or revoked), the API producer + should respond with this response. The details of the error + shall be returned in the WWW-Authenticate HTTP header, as + defined in IETF RFC 6750 and IETF RFC 7235. The + ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular + request to a particular resource, the API producer shall + respond with this response code. The "ProblemDetails" + structure shall be provided. It should include in the + "detail" attribute information about the source of the + problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation + for the resource addressed by the URI passed in the request + or is not willing to disclose that one exists, it shall + respond with this response code. The "ProblemDetails" + structure may be provided, including in the "detail" + attribute information about the source of the problem, e.g. + a wrong resource URI variable. + + This response code is not appropriate in case the resource + addressed by the URI is a container resource which is + designed to contain child resources, but does not contain + any child resource at the time the request is received. For + a GET request to an existing empty container resource, a + typical response contains a 200 OK response code and a + payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a + particular resource, the API producer shall respond with + this response code. The "ProblemDetails" structure may be + omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one + name of a content type that is acceptable to the API + producer, the API producer shall respond with this response + code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically + correct data (e.g. well-formed JSON) but the data cannot be + processed (e.g. because it fails validation against a + schema), the API producer shall respond with this response + code. The "ProblemDetails" structure shall be provided, and + should include in the "detail" attribute more information + about the source of the problem. + + This error response code is only applicable for methods that + have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's + input that cannot be easily mapped to any other HTTP + response code ("catch all error"), the API producer shall + respond with this response code. The "ProblemDetails" + structure shall be provided, and shall include in the + "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload + situation of itself or of a system it relies on, it should + respond with this response code, following the provisions in + IETF RFC 7231 for the use of the "Retry-After" HTTP header + and for the alternative to refuse the connection. The + "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it + should respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + get: + description: >- + The GET method allows the API producer to test the notification + endpoint that is provided by the API consumer, e.g. during + subscription. This method shall follow the provisions specified + in the tables 8.5.9.3.2-1 and 8.5.9.3.2-2 for URI query + parameters, request and response data structures, and response + codes. + parameters: + - name: Version + description: > + Version of the API requested to use when responding to this + request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: > + The authorization token for the request. Reference: IETF RFC + 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: >- + Shall be returned to indicate that the notification endpoint + has been tested successfully. The response body shall be + empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, + the specific cause has to be proper specified in the + "ProblemDetails" structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. + if the request URI contains incorrect query parameters or + the payload body contains a syntactically incorrect data + structure), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be + provided, and should include in the "detail" attribute more + information about the source of the problem. + + If the response to a GET request which queries a container + resource would be so big that the performance of the API + producer is adversely affected, and the API producer does + not support paging for the affected resource, it shall + respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the + "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's + input that cannot be easily mapped to any other HTTP + response code ("catch all error"), the API producer shall + respond with this response code. The "ProblemDetails" + structure shall be provided, and shall include in the + "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API + producer should respond with this response. The details of + the error shall be returned in the WWW Authenticate HTTP + header, as defined in IETF RFC 6750 and IETF RFC 7235. The + ProblemDetails structure may be provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization + of API requests and notifications, as defined in clauses + 4.5.3.3 and 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is + required, or if the request contains an authorization token + that is invalid (e.g. expired or revoked), the API producer + should respond with this response. The details of the error + shall be returned in the WWW-Authenticate HTTP header, as + defined in IETF RFC 6750 and IETF RFC 7235. The + ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular + request to a particular resource, the API producer shall + respond with this response code. The "ProblemDetails" + structure shall be provided. It should include in the + "detail" attribute information about the source of the + problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation + for the resource addressed by the URI passed in the request + or is not willing to disclose that one exists, it shall + respond with this response code. The "ProblemDetails" + structure may be provided, including in the "detail" + attribute information about the source of the problem, e.g. + a wrong resource URI variable. + + This response code is not appropriate in case the resource + addressed by the URI is a container resource which is + designed to contain child resources, but does not contain + any child resource at the time the request is received. For + a GET request to an existing empty container resource, a + typical response contains a 200 OK response code and a + payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a + particular resource, the API producer shall respond with + this response code. The "ProblemDetails" structure may be + omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one + name of a content type that is acceptable to the API + producer, the API producer shall respond with this response + code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically + correct data (e.g. well-formed JSON) but the data cannot be + processed (e.g. because it fails validation against a + schema), the API producer shall respond with this response + code. The "ProblemDetails" structure shall be provided, and + should include in the "detail" attribute more information + about the source of the problem. + + This error response code is only applicable for methods that + have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's + input that cannot be easily mapped to any other HTTP + response code ("catch all error"), the API producer shall + respond with this response code. The "ProblemDetails" + structure shall be provided, and shall include in the + "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload + situation of itself or of a system it relies on, it should + respond with this response code, following the provisions in + IETF RFC 7231 for the use of the "Retry-After" HTTP header + and for the alternative to refuse the connection. The + "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it + should respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not + provided authorization, or error details if the + corresponding HTTP request has provided an invalid + authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined + in IETF RFC 7807 [19], the "status" and "detail" + attributes are mandated to be included by the present + document, to ensure that the response contains + additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular + APIs in the present document, or particular + implementations, define extensions to define + additional attributes that provide more information + about the error. The description column only provides + some explanation of the meaning to Facilitate + understanding of the design. For a full description, + see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] + that identifies the problem type. It is encouraged + that the URI provides human-readable documentation + for the problem (e.g. using HTML) when + dereferenced. When this member is not present, its + value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem + type. It should not change from occurrence to + occurrence of the problem, except for purposes of + localization. If type is given and other than + "about:blank", this attribute shall also be + provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from + occurrence to occurrence of the problem, except + for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section + 6) generated by the origin server for this + occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + get: + description: >- + The API consumer can use this method to query the list of active + subscriptions to log management notifications subscribed by the API + consumer. This method shall follow the provisions specified in the + tables 8.5.7.3.2-1 and 8.5.7.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI + GS NFV-SOL 013. The NFV-MANO functional entity shall support + receiving this parameter as part of the URI query string. The API + consumer may supply this parameter. All attribute names that appear + in the FmSubscription and in data types referenced from it shall be + supported by the NFV-MANO functional entity in the filter + expression. + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: >- + Shall be returned when the list of subscriptions has been queried + successfully. The response body shall contain in an array the + representations of all active subscriptions of the functional block + that invokes the method, i.e. zero or more representations of log + management subscriptions as defined in clause 8.6.2.3. If the + "filter" URI parameter was supplied in the request, the data in the + response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO + functional entity supports alternative 2 (paging) according to + clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion + of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013 . + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: >- + This type represents a subscription. It shall comply with + the provisions defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + filter: + description: >- + This type represents a filter that can be used to + subscribe for notifications related to log management + events. It shall comply with the provisions defined in + table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. It shall comply with the + provisions defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being + globally unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an + instance identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed + in this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed + in this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted + values: - LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/subscriptions/{subscriptionId}': + description: >- + This resource represents an individual subscription for notifications + about log management related events. The API consumer can use this + resource to read and to terminate a subscription to notifications related + o NFV-MANO log management. + parameters: + - name: subscriptionId + in: path + description: Identifier of the subscription + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: >- + The API consumer can use this method for reading an individual + subscription about log management notifications subscribed by the API + consumer. This method shall follow the provisions specified in the + tables 8.5.8.3.2-1 and 8.5.8.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: >- + Shall be returned when the subscription has been read successfully. + The response body shall contain a representation of the "Individual + subscription" resource, as defined in clause 8.6.2.3. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a subscription. It shall comply with the + provisions defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: >- + This type represents a filter that can be used to + subscribe for notifications related to log management + events. It shall comply with the provisions defined in + table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. It shall comply with the + provisions defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an + instance identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed + in this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed + in this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: + - LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: "This method terminates an individual subscription. This method shall follow the provisions specified in the tables 8.5.8.3.5-1 and 8.5.8.3.5-2 for URI query parameters, request and response data structures, and response codes. As the result of successfully executing this method, the \"Individual subscription\" resource shall not exist any longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. NOTE:\tDue to race conditions, some notifications might still be received by the formerly-subscribed API consumer for a certain time period after the deletion." + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: >- + Shall be returned when the "Individual subscription" resource has + been deleted successfully. The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI +components: + parameters: + logJobId: + name: logJobId + in: path + description: Identifier of the logging job. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + logReportId: + name: logReportId + in: path + description: Identifier of the report. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + subscriptionId: + name: subscriptionId + in: path + description: Identifier of the subscription + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + requestBodies: + LogmSubscriptionRequest: + description: Details of the subscription to be created + content: + application/json: + schema: + description: >- + Information on application context created by the MEC system type: + object + required: + - callbackUri + type: object + properties: + filter: + description: >- + This type represents a filter that can be used to subscribe + for notifications related to log management events. It shall + comply with the provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. It shall comply with the provisions defined in + Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance + identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which + the API consumer is willing to accept when receiving a + notification. Permitted values: * BASIC: In every HTTP + request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. Shall be + absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information + has not been provisioned out of band. Shall be absent + otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been provisioned + out of band. The clientId and clientPassword passed in + a subscription shall not be the same as the clientId + and clientPassword that are used to obtain + authorization for API requests. Client credentials may + differ between subscriptions. The value of + clientPassword should be generated by a random + process. + type: string + clientPassword: + description: > + Client password to be used in the access token request + of the OAuth 2.0 client credentials grant type. Shall + be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a + subscription shall not be the same as the clientId and + clientPassword that are used to obtain authorization + for API requests. Client credentials may differ + between subscriptions. The value of clientPassword + should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + CreateLoggingJobRequest: + description: >- + This type represents a request to create a logging job. It shall comply + with the provisions defined in table 8.6.2.5-1. + content: + application/json: + schema: + description: Information on application context created by the MEC system + type: object + required: + - objectInstanceIds + - jobCriteria + - jobConfig + properties: + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is requested to be collected. This attribute shall + contain the identifier of the instance of the object to be + logged according to their type. If more than one identifier is + provided, values shall all refer to object instances of the + same type, for which the same criteria is then applicable. + type: array + minItems: 1 + items: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. It + shall comply with the provisions defined in table 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO service + interface messages. - SERVICES: logged messages about + processes pertaining to NFV-MANO services. - SYSTEM: + logged messages about the NFV-MANO functional entity’s + system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged messages on NFV-MANO service interfaces. It shall + comply with the provisions defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the interface. + - ALL: both input and output messages into/from the + interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If + provided, only messages that match all the values + provided in the sub-attributes shall be logged. An API + consumer can provide more than one "matchingPattern" + if combinations of patterns are to be considered to + match diverse sets of interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero + to four hexadecimal digits, separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, the + HTTP request method of the message shall be the + same as the value of this attribute. Valid + values are specified in IETF RFC 7231. The API + producer shall support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To + match, the request URI shall include the value + of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero + to four hexadecimal digits, separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A list + of all valid HTTP response codes and their + specification documents can be obtained from the + HTTP status code registry. In addition, if + supported, the following patterns may be used + (case-insensitive): - "1XX": for matching any + kind of informational response. - "2XX": for + matching any kind of success response. - "3XX": + for matching any kind redirection response. - + "4XX": for matching any kind of client error + response. - "5XX": for matching any kind of + server error response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The + header field name shall be one of the supported + fields in a request message as defined in clause + 4.2.2 of ETSI GS NFV-SOL 013 or in a response + message as defined in clause 4.2.3 of ETSI GS + NFV-SOL 013, in accordance with the "direction" + criteria input. The API producer may support + this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the + value in the header field indicated by + "headerField" shall be the same as in this + attribute. Shall be provided if a "headerField" + is provided. The API producer may support this + attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part + of the interface message (e.g., the body of an + HTTP message). If provided, only messages with + text in the body part containing all the values + from the list shall match the filter. In + addition to a matching filter for the body of + the message, a corresponding "headerField" + filter shall also be provided, with + "headerField" set to "Content-Type", to restrict + matching to appropriate textual payloads such as + "application/json" or "text/plain". The API + producer may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged messages about processes pertaining to NFV-MANO + services. It shall comply with the provisions defined in + table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage + collection processes associated to NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged system events of the NFV-MANO functional entity. It + shall comply with the provisions defined in table + 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default value + is "rfc5424", which represents the set of values + specified in the clause 6.2.1, table 2 of IETF RFC + 5424. Other values may be used to signal different + schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of + the system messages to collect. The NFV-MANO + functional entity shall collect system log messages, + as indicated by the "systemLogs" attribute, with + severity levels lower (i.e., more severe) or equal to + the value provided by this present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. It + shall comply with the provisions defined in table 8.6.3.6-1. + NOTE: The present document version does not specify the + support for "log compilation and reporting based on events" as + specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will + report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted + values: - REPORTING_ON_COMPILATION: the producer shall + notify the consumer once the compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know about the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected + log data, in bytes. It is used when the compilation is + based on the size of the collected log data. If not + present, a default value as specified with the + "defaultLogCompileBySizeValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered log, + in seconds. It is used when the compilation is based on a + timer (e.g., every 24 hours). If not present, a default + value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the logging + job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log + files. Shall be present if the log file is requested + to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for + the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More than one + algorithm can be provided from higher (lower array + index) to lower (higher array index) precedence. + Valid values are: "AES-CBC-128", "AES-GCM-128", + "AES-CBC-256", and "AES-GCM-256", as specified in + clause 6.5 of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid values + are: "encryptFirst", to apply the order "first + encrypt, then sign", and "signFirst" for the order + "first sign, then encrypt". Default value is + "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the + client authentication with the file server. Shall + be provided if required by the type of transfer + protocol. May be omitted if the key has been + provided to the API producer by other means, or if + it has already been provided in some previous + CreateLoggingJobRequest issued by the same API + consumer, whose public key has not changed. + type: string + required: true + CompileLogRequest: + description: Log compilation request. + content: + application/json: + schema: + description: > + This type represents a request to compile the logged data + associated to an object instance. It shall comply with the + provisions defined in table 8.6.2.8-1. + type: object + properties: + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + required: true + LogReportAvailableNotification: + description: Notification about the availability of a log report. + content: + application/json: + schema: + description: >- + This notification informs the receiver that the log report of the + NFV-MANO functional entity is available. It shall comply with the + provisions defined in table 8.6.2.4-1. The notification shall be + triggered by the NFV-MANO functional entity when log information + has been collected by the logging job and the log report is + available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - objectInstanceId + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + notificationType: + description: >- + Discriminator for the different notification types. Shall be + set to "LogReportAvailableNotification" for this notification + type. + type: string + subscriptionId: + description: | + An identifier with the intention of being globally unique. + type: string + timeStamp: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + _links: + description: Links to resources related to this notification. + type: object + required: + - subscription + - logReports + properties: + subscription: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LoggingJob: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + logReports: + description: >- + Link from which the available log report can be obtained. + Due to the relationship of the logging job compilation and + the logging information availability reporting, more than + one logReport notification link can be provided. + type: array + items: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + responses: + subscription.delete.204: + description: >- + Shall be returned when the "Individual subscription" resource has been + deleted successfully. The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + subscription.get.200: + description: >- + Shall be returned when the subscription has been read successfully. The + response body shall contain a representation of the "Individual + subscription" resource, as defined in clause 8.6.2.3. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a subscription. It shall comply with the + provisions defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: >- + This type represents a filter that can be used to subscribe + for notifications related to log management events. It shall + comply with the provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. It shall comply with the provisions defined in + Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance + identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + subscriptions.get.200: + description: >- + Shall be returned when the list of subscriptions has been queried + successfully. The response body shall contain in an array the + representations of all active subscriptions of the functional block that + invokes the method, i.e. zero or more representations of log management + subscriptions as defined in clause 8.6.2.3. If the "filter" URI + parameter was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clause + 5.2.2 of ETSI GS NFV-SOL 013. If the NFV-MANO functional entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL + 013 for this resource, inclusion of the Link HTTP header in this + response shall follow the provisions in clause 5.4.2.3 of ETSI GS + NFV-SOL 013 . + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: >- + This type represents a subscription. It shall comply with the + provisions defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: >- + This type represents a filter that can be used to subscribe + for notifications related to log management events. It shall + comply with the provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to + match NFV-MANO functional entities and their associated + managed objects. It shall comply with the provisions + defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance + identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed in + this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed in + this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + subscriptions.post.201: + description: >- + Shall be returned when the subscription has been created successfully. A + representation of the created "Individual subscription" resource shall + be returned in the response body, as defined in clause 8.6.2.3. The HTTP + response shall include a "Location" HTTP header that contains the + resource URI of the created "Individual subscription" resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + URI of the "Individual log report" resource just created + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a subscription. It shall comply with the + provisions defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: >- + This type represents a filter that can be used to subscribe + for notifications related to log management events. It shall + comply with the provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. It shall comply with the provisions defined in + Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance + identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + subscriptions.post.303: + description: >- + Shall be returned when a subscription with the same callbackURI and the + same filter already exists and the policy of the NFV-MANO functional + entity is to not create redundant subscriptions. The HTTP response shall + include a "Location" HTTP header that contains the resource URI of the + existing "Individual subscription" resource. The response body shall be + empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + URI of the "Individual log report" resource just created + schema: + type: string + LogReportCompiled.Post.200: + description: >- + Shall be returned for a successful compilation of the log data and + creation of the associated log report (synchronous mode). The response + body shall contain a representation of the log report resource, as + defined in clause 8.6.2.7. The HTTP response shall include a "Location" + HTTP header that indicate the URI of the "Individual log report" + resource just created + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + URI of the "Individual log report" resource just created + schema: + type: string + content: + application/json: + schema: + description: > + This type represents a log report, which provides information + about a compiled log and how to obtain it. It shall comply with + the provisions defined in table 8.6.2.7-1. + type: object + required: + - id + - objectInstanceId + - compilationTrigger + - readyTime + - fileFormat + - fileLocationInfo + - securityAndIntegrityInfo + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + compilationTrigger: + description: >- + The trigger for the compilation of the log file. + + Permitted values: - ON_DEMAND: created based on explicit + request by a client. - AUTOMATIC: created according to the + logging job compilation configuration. + type: string + enum: + - ON_DEMAND + - AUTOMATIC + readyTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + fileSize: + description: 'The size of the compiled log file in bytes, if known.' + type: integer + format: int32 + fileFormat: + description: The encoding used by the file. + type: string + fileLocationInfo: + description: >- + Location and address information of the compiled log file. The + consumer can use this information to obtain the compiled log + file. + type: object + required: + - protocol + - fileEndpoint + properties: + protocol: + description: >- + Protocol over which the compiled log file can be + retrieved. + + Permitted values: - HTTPS: transmission over HTTP Secure + (HTTPS). - SFTP: transmission over SSH file transfer + protocol (SFTP). - SCP: transmission over secure copy + protocol (SCP). - FTPS: transmission over file transfer + protocol secure (FTPS), as specified in IETF RFC 2228 + [i.11], + using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, "private" protection level shall be used. + + HTTPS shall be supported, and other protocols may be + supported. + type: string + enum: + - HTTPS + - SFTP + - SCP + - FTPS + fileEndpoint: + description: >- + The host name (or IP address), optionally a port number + (if the host with the compile log file uses a non-standard + port number as per the supported transmission protocol), a + valid file directory path, and the file name of the + compiled log file, or a valid URL. + type: string + format: URI + securityAndIntegrityInfo: + description: >- + Security and integrity information for the compilation of the + log files. + type: object + required: + - algorithm + - hash + - logFileSignature + - signingCertificate + properties: + algorithm: + description: >- + Algorithm used to generate the hash of the compiled log + file. Only SHA-256 and SHA-512 shall be used + type: string + hash: + description: >- + The hexadecimal value of the hash of the compiled log + file. The hash shall be computed from the encrypted + compiled log file, in case the encryption applies. + type: string + encryptionPublicKey: + description: >- + Public key used for the encryption of the compiled log + file. Shall be present if the compiled log file is + encrypted. + type: string + cipherAlgorithm: + description: >- + The cryptographic algorithm used for the encryption. Shall + be present if the compiled log file is encrypted. Valid + values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", + and "AES-GCM-256", as specified in clause 6.5 of ETSI GS + NFV-SEC 012 [14]. + type: string + logFileSignature: + description: >- + Signature to the compiled log file generated with the + NFV-MANO functional entity’s private key, which is used to + ensure the authenticity of the compiled log file. The + signature shall be applied according to the + "encryptAndSignOrder" of the "LoggingJobConfig". + type: string + signingCertificate: + description: >- + X.509 certificate with the NFV-MANO functional entity’s + public key used for verifying the log report and compiled + log file signatures. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances that + are logged. Shall be present if the logged object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LogReportCompiled.Post.202: + description: >- + Shall be returned when the request has been accepted for processing, and + it is expected to take some time to compile the log file and create the + associated log report (asynchronous mode). The response body shall be + empty. The HTTP response shall include a "Location" HTTP header that + indicates the URI of the "Individual log report" resource that will be + created once the log file compilation is completed. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The URI of the "Individual log report" resource that will be created + once the log file compilation is completed. + schema: + type: string + LogReportCompiled.Post.303: + description: >- + Shall be returned when a log data compilation and report creation is + already ongoing, or a log report has just been created, for the + specified logging job at the time of processing the request. The + response body shall be empty. The HTTP response shall include a + "Location" HTTP header that contains the resource URI of the log report + resource just created, or to be created by the ongoing compilation and + report creation. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The URI of the log report resource just created, or to be created by + the ongoing compilation and report creation + schema: + type: string + LogReportCompiled.Post.422: + description: >- + The general cause for this error and its handling is specified in clause + 6.4 of ETSI GS NFV-SOL 013, including rules for the presence of the + response body. Specifically, in case of this task resource, the response + code 422 shall also be returned if the "objectInstanceId" value provided + in the payload body of the request does not correspond to an object + instance for which log data is being collected by the logging job + represented by this resource. The response body shall contain a + ProblemDetails structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + LogReport.Get.200: + description: >- + Shall be returned when information of an individual log report has been + read successfully. The response body shall contain a representation of + the "Individual log report" resource, as defined in clause 8.6.2.7. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents a log report, which provides information + about a compiled log and how to obtain it. It shall comply with + the provisions defined in table 8.6.2.7-1. + type: object + required: + - id + - objectInstanceId + - compilationTrigger + - readyTime + - fileFormat + - fileLocationInfo + - securityAndIntegrityInfo + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + compilationTrigger: + description: >- + The trigger for the compilation of the log file. + + Permitted values: - ON_DEMAND: created based on explicit + request by a client. - AUTOMATIC: created according to the + logging job compilation configuration. + type: string + enum: + - ON_DEMAND + - AUTOMATIC + readyTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + fileSize: + description: 'The size of the compiled log file in bytes, if known.' + type: integer + format: int32 + fileFormat: + description: The encoding used by the file. + type: string + fileLocationInfo: + description: >- + Location and address information of the compiled log file. The + consumer can use this information to obtain the compiled log + file. + type: object + required: + - protocol + - fileEndpoint + properties: + protocol: + description: >- + Protocol over which the compiled log file can be + retrieved. + + Permitted values: - HTTPS: transmission over HTTP Secure + (HTTPS). - SFTP: transmission over SSH file transfer + protocol (SFTP). - SCP: transmission over secure copy + protocol (SCP). - FTPS: transmission over file transfer + protocol secure (FTPS), as specified in IETF RFC 2228 + [i.11], + using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, "private" protection level shall be used. + + HTTPS shall be supported, and other protocols may be + supported. + type: string + enum: + - HTTPS + - SFTP + - SCP + - FTPS + fileEndpoint: + description: >- + The host name (or IP address), optionally a port number + (if the host with the compile log file uses a non-standard + port number as per the supported transmission protocol), a + valid file directory path, and the file name of the + compiled log file, or a valid URL. + type: string + format: URI + securityAndIntegrityInfo: + description: >- + Security and integrity information for the compilation of the + log files. + type: object + required: + - algorithm + - hash + - logFileSignature + - signingCertificate + properties: + algorithm: + description: >- + Algorithm used to generate the hash of the compiled log + file. Only SHA-256 and SHA-512 shall be used + type: string + hash: + description: >- + The hexadecimal value of the hash of the compiled log + file. The hash shall be computed from the encrypted + compiled log file, in case the encryption applies. + type: string + encryptionPublicKey: + description: >- + Public key used for the encryption of the compiled log + file. Shall be present if the compiled log file is + encrypted. + type: string + cipherAlgorithm: + description: >- + The cryptographic algorithm used for the encryption. Shall + be present if the compiled log file is encrypted. Valid + values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", + and "AES-GCM-256", as specified in clause 6.5 of ETSI GS + NFV-SEC 012 [14]. + type: string + logFileSignature: + description: >- + Signature to the compiled log file generated with the + NFV-MANO functional entity’s private key, which is used to + ensure the authenticity of the compiled log file. The + signature shall be applied according to the + "encryptAndSignOrder" of the "LoggingJobConfig". + type: string + signingCertificate: + description: >- + X.509 certificate with the NFV-MANO functional entity’s + public key used for verifying the log report and compiled + log file signatures. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances that + are logged. Shall be present if the logged object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LogReport.Get.202: + description: >- + Shall be returned if the creation of the log report is ongoing and no + log report is available yet (applicable in asynchronous mode of the + "Compile log task" resource). The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + LoggingJob.Get: + description: >- + Shall be returned when information about an individual logging job has + been read successfully. The response body shall contain a representation + of the "Individual logging job" resource, as defined in clause 8.6.2.6. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a logging job. It shall comply with the + provisions defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is collected. This attribute shall contain the + identifier of the instance of the object that is logged + according to their type. + type: array + items: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. It + shall comply with the provisions defined in table 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO service + interface messages. - SERVICES: logged messages about + processes pertaining to NFV-MANO services. - SYSTEM: + logged messages about the NFV-MANO functional entity’s + system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged messages on NFV-MANO service interfaces. It shall + comply with the provisions defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the interface. + - ALL: both input and output messages into/from the + interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If + provided, only messages that match all the values + provided in the sub-attributes shall be logged. An API + consumer can provide more than one "matchingPattern" + if combinations of patterns are to be considered to + match diverse sets of interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero + to four hexadecimal digits, separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, the + HTTP request method of the message shall be the + same as the value of this attribute. Valid + values are specified in IETF RFC 7231. The API + producer shall support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To + match, the request URI shall include the value + of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero + to four hexadecimal digits, separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A list + of all valid HTTP response codes and their + specification documents can be obtained from the + HTTP status code registry. In addition, if + supported, the following patterns may be used + (case-insensitive): - "1XX": for matching any + kind of informational response. - "2XX": for + matching any kind of success response. - "3XX": + for matching any kind redirection response. - + "4XX": for matching any kind of client error + response. - "5XX": for matching any kind of + server error response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The + header field name shall be one of the supported + fields in a request message as defined in clause + 4.2.2 of ETSI GS NFV-SOL 013 or in a response + message as defined in clause 4.2.3 of ETSI GS + NFV-SOL 013, in accordance with the "direction" + criteria input. The API producer may support + this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the + value in the header field indicated by + "headerField" shall be the same as in this + attribute. Shall be provided if a "headerField" + is provided. The API producer may support this + attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part + of the interface message (e.g., the body of an + HTTP message). If provided, only messages with + text in the body part containing all the values + from the list shall match the filter. In + addition to a matching filter for the body of + the message, a corresponding "headerField" + filter shall also be provided, with + "headerField" set to "Content-Type", to restrict + matching to appropriate textual payloads such as + "application/json" or "text/plain". The API + producer may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged messages about processes pertaining to NFV-MANO + services. It shall comply with the provisions defined in + table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage + collection processes associated to NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged system events of the NFV-MANO functional entity. It + shall comply with the provisions defined in table + 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default value + is "rfc5424", which represents the set of values + specified in the clause 6.2.1, table 2 of IETF RFC + 5424. Other values may be used to signal different + schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of + the system messages to collect. The NFV-MANO + functional entity shall collect system log messages, + as indicated by the "systemLogs" attribute, with + severity levels lower (i.e., more severe) or equal to + the value provided by this present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. It + shall comply with the provisions defined in table 8.6.3.6-1. + NOTE: The present document version does not specify the + support for "log compilation and reporting based on events" as + specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will + report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted + values: - REPORTING_ON_COMPILATION: the producer shall + notify the consumer once the compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know about the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected + log data, in bytes. It is used when the compilation is + based on the size of the collected log data. If not + present, a default value as specified with the + "defaultLogCompileBySizeValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered log, + in seconds. It is used when the compilation is based on a + timer (e.g., every 24 hours). If not present, a default + value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the logging + job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log + files. Shall be present if the log file is requested + to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for + the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More than one + algorithm can be provided from higher (lower array + index) to lower (higher array index) precedence. + Valid values are: "AES-CBC-128", "AES-GCM-128", + "AES-CBC-256", and "AES-GCM-256", as specified in + clause 6.5 of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid values + are: "encryptFirst", to apply the order "first + encrypt, then sign", and "signFirst" for the order + "first sign, then encrypt". Default value is + "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the + client authentication with the file server. Shall + be provided if required by the type of transfer + protocol. May be omitted if the key has been + provided to the API producer by other means, or if + it has already been provided in some previous + CreateLoggingJobRequest issued by the same API + consumer, whose public key has not changed. + type: string + logReports: + description: >- + Information about available log reports created by the logging + job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: > + An identifier with the intention of being globally + unique. + type: string + logReportLoc: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances that + are logged. Shall be present if the logged object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LoggingJob.Delete: + description: >- + Shall be returned when the logging job has been deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: Version of the API used in the response. + schema: + type: string + LoggingJob.Post: + description: >- + The response body contains the Application Context as it was created by + the MEC system + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: >- + This type represents a logging job. It shall comply with the + provisions defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is collected. This attribute shall contain the + identifier of the instance of the object that is logged + according to their type. + type: array + items: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. It + shall comply with the provisions defined in table 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO service + interface messages. - SERVICES: logged messages about + processes pertaining to NFV-MANO services. - SYSTEM: + logged messages about the NFV-MANO functional entity’s + system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged messages on NFV-MANO service interfaces. It shall + comply with the provisions defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the interface. + - ALL: both input and output messages into/from the + interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If + provided, only messages that match all the values + provided in the sub-attributes shall be logged. An API + consumer can provide more than one "matchingPattern" + if combinations of patterns are to be considered to + match diverse sets of interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero + to four hexadecimal digits, separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, the + HTTP request method of the message shall be the + same as the value of this attribute. Valid + values are specified in IETF RFC 7231. The API + producer shall support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To + match, the request URI shall include the value + of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero + to four hexadecimal digits, separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A list + of all valid HTTP response codes and their + specification documents can be obtained from the + HTTP status code registry. In addition, if + supported, the following patterns may be used + (case-insensitive): - "1XX": for matching any + kind of informational response. - "2XX": for + matching any kind of success response. - "3XX": + for matching any kind redirection response. - + "4XX": for matching any kind of client error + response. - "5XX": for matching any kind of + server error response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The + header field name shall be one of the supported + fields in a request message as defined in clause + 4.2.2 of ETSI GS NFV-SOL 013 or in a response + message as defined in clause 4.2.3 of ETSI GS + NFV-SOL 013, in accordance with the "direction" + criteria input. The API producer may support + this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the + value in the header field indicated by + "headerField" shall be the same as in this + attribute. Shall be provided if a "headerField" + is provided. The API producer may support this + attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part + of the interface message (e.g., the body of an + HTTP message). If provided, only messages with + text in the body part containing all the values + from the list shall match the filter. In + addition to a matching filter for the body of + the message, a corresponding "headerField" + filter shall also be provided, with + "headerField" set to "Content-Type", to restrict + matching to appropriate textual payloads such as + "application/json" or "text/plain". The API + producer may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged messages about processes pertaining to NFV-MANO + services. It shall comply with the provisions defined in + table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage + collection processes associated to NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to collect + logged system events of the NFV-MANO functional entity. It + shall comply with the provisions defined in table + 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default value + is "rfc5424", which represents the set of values + specified in the clause 6.2.1, table 2 of IETF RFC + 5424. Other values may be used to signal different + schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of + the system messages to collect. The NFV-MANO + functional entity shall collect system log messages, + as indicated by the "systemLogs" attribute, with + severity levels lower (i.e., more severe) or equal to + the value provided by this present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. It + shall comply with the provisions defined in table 8.6.3.6-1. + NOTE: The present document version does not specify the + support for "log compilation and reporting based on events" as + specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will + report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted + values: - REPORTING_ON_COMPILATION: the producer shall + notify the consumer once the compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know about the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected + log data, in bytes. It is used when the compilation is + based on the size of the collected log data. If not + present, a default value as specified with the + "defaultLogCompileBySizeValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered log, + in seconds. It is used when the compilation is based on a + timer (e.g., every 24 hours). If not present, a default + value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the logging + job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log + files. Shall be present if the log file is requested + to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for + the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More than one + algorithm can be provided from higher (lower array + index) to lower (higher array index) precedence. + Valid values are: "AES-CBC-128", "AES-GCM-128", + "AES-CBC-256", and "AES-GCM-256", as specified in + clause 6.5 of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid values + are: "encryptFirst", to apply the order "first + encrypt, then sign", and "signFirst" for the order + "first sign, then encrypt". Default value is + "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the + client authentication with the file server. Shall + be provided if required by the type of transfer + protocol. May be omitted if the key has been + provided to the API producer by other means, or if + it has already been provided in some previous + CreateLoggingJobRequest issued by the same API + consumer, whose public key has not changed. + type: string + logReports: + description: >- + Information about available log reports created by the logging + job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: > + An identifier with the intention of being globally + unique. + type: string + logReportLoc: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances that + are logged. Shall be present if the logged object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LoggingJobs.Get: + description: >- + Shall be returned when information about zero or more logging jobs has + been queried successfully. + + The response body shall contain in an array the representations of zero + or more logging jobs, as defined in clause 8.6.2.6. + + If the "filter" URI parameter or one of the "all_fields", "fields" (if + supported), "exclude_fields" (if supported) or "exclude_default" URI + parameters was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clauses + 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + + If the NFV-MANO functional entity supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + type: array + items: + description: >- + This type represents a logging job. It shall comply with the + provisions defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging + information is collected. This attribute shall contain the + identifier of the instance of the object that is logged + according to their type. + type: array + items: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. + It shall comply with the provisions defined in table + 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged + information to collect. + + Permitted values: - MESSAGES: logged NFV-MANO service + interface messages. - SERVICES: logged messages about + processes pertaining to NFV-MANO services. - SYSTEM: + logged messages about the NFV-MANO functional entity’s + system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages on NFV-MANO service interfaces. + It shall comply with the provisions defined in table + 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the + interface. - OUT: output messages from the + interface. - ALL: both input and output messages + into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If + provided, only messages that match all the values + provided in the sub-attributes shall be logged. An + API consumer can provide more than one + "matchingPattern" if combinations of patterns are to + be considered to match diverse sets of interface + messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that consists + of four decimal integers separated by dots, + each integer ranging from 0 to 255. In case of + an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, + the HTTP request method of the message shall + be the same as the value of this attribute. + Valid values are specified in IETF RFC 7231. + The API producer shall support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To + match, the request URI shall include the value + of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In + case of an IPV4 address, string that consists + of four decimal integers separated by dots, + each integer ranging from 0 to 255. In case of + an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A + list of all valid HTTP response codes and + their specification documents can be obtained + from the HTTP status code registry. In + addition, if supported, the following patterns + may be used (case-insensitive): - "1XX": for + matching any kind of informational response. - + "2XX": for matching any kind of success + response. - "3XX": for matching any kind + redirection response. - "4XX": for matching + any kind of client error response. - "5XX": + for matching any kind of server error + response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The + header field name shall be one of the + supported fields in a request message as + defined in clause 4.2.2 of ETSI GS NFV-SOL 013 + or in a response message as defined in clause + 4.2.3 of ETSI GS NFV-SOL 013, in accordance + with the "direction" criteria input. The API + producer may support this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, + the value in the header field indicated by + "headerField" shall be the same as in this + attribute. Shall be provided if a + "headerField" is provided. The API producer + may support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body + part of the interface message (e.g., the body + of an HTTP message). If provided, only + messages with text in the body part containing + all the values from the list shall match the + filter. In addition to a matching filter for + the body of the message, a corresponding + "headerField" filter shall also be provided, + with "headerField" set to "Content-Type", to + restrict matching to appropriate textual + payloads such as "application/json" or + "text/plain". The API producer may support + this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged messages about processes pertaining to + NFV-MANO services. It shall comply with the provisions + defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about + garbage collection processes associated to NFV-MANO + services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to + collect logged system events of the NFV-MANO functional + entity. It shall comply with the provisions defined in + table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default + value is "rfc5424", which represents the set of + values specified in the clause 6.2.1, table 2 of + IETF RFC 5424. Other values may be used to signal + different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of + the system messages to collect. The NFV-MANO + functional entity shall collect system log messages, + as indicated by the "systemLogs" attribute, with + severity levels lower (i.e., more severe) or equal + to the value provided by this present attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. + It shall comply with the provisions defined in table + 8.6.3.6-1. NOTE: The present document version does not + specify the support for "log compilation and reporting based + on events" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA + 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will + report to the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted + values: - REPORTING_ON_COMPILATION: the producer + shall notify the consumer once the compilation of + the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the + consumer can query the logging jobs to know about + the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the + producer will report to the consumer about the + collected log information, in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected + log data, in bytes. It is used when the compilation is + based on the size of the collected log data. If not + present, a default value as specified with the + "defaultLogCompileBySizeValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered + log, in seconds. It is used when the compilation is + based on a timer (e.g., every 24 hours). If not present, + a default value as specified with the + "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: >- + Configuration about the security aspects of the logging + job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log + files. Shall be present if the log file is requested + to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for + the encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the + encryption of the compiled log file. More than + one algorithm can be provided from higher (lower + array index) to lower (higher array index) + precedence. Valid values are: "AES-CBC-128", + "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", + as specified in clause 6.5 of ETSI GS NFV-SEC + 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and + encrypting the compiled log file. Valid values + are: "encryptFirst", to apply the order "first + encrypt, then sign", and "signFirst" for the + order "first sign, then encrypt". Default value + is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the + client authentication with the file server. + Shall be provided if required by the type of + transfer protocol. May be omitted if the key has + been provided to the API producer by other + means, or if it has already been provided in + some previous CreateLoggingJobRequest issued by + the same API consumer, whose public key has not + changed. + type: string + logReports: + description: >- + Information about available log reports created by the + logging job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: > + An identifier with the intention of being globally + unique. + type: string + logReportLoc: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances + that are logged. Shall be present if the logged object + instance information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LogReportAvailableNotification.Post: + description: Shall be returned when the notification has been delivered successfully. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + LogReportNotification.Get: + description: >- + Shall be returned to indicate that the notification endpoint has been + tested successfully. The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + schemas: + LogmSubscription: + description: >- + This type represents a subscription. It shall comply with the provisions + defined in table 8.6.2.3-1. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: >- + This type represents a filter that can be used to subscribe for + notifications related to log management events. It shall comply with + the provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. It shall comply with the provisions defined in Table + 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance + identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LogmNotificationsFilter: + description: >- + This type represents a filter that can be used to subscribe for + notifications related to log management events. It shall comply with the + provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to match NFV-MANO + functional entities and their associated managed objects. It shall + comply with the provisions defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance identifier + listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced interfaces + with an instance identifier listed in this attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced interfaces + with an instance Name listed in this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed interfaces + with an instance identifier listed in this attribute. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed interfaces + with an instance Name listed in this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + ManoEntitySubscriptionFilter: + description: >- + This type represents subscription filter criteria to match NFV-MANO + functional entities and their associated managed objects. It shall + comply with the provisions defined in Table 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance identifier + listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO service name + listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced interfaces + with an instance identifier listed in this attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced interfaces + with an instance Name listed in this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed interfaces + with an instance identifier listed in this attribute. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed interfaces + with an instance Name listed in this attribute. + type: array + items: + type: string + CompileLogRequest: + description: > + This type represents a request to compile the logged data associated to + an object instance. It shall comply with the provisions defined in table + 8.6.2.8-1. + type: object + properties: + objectInstanceId: + description: > + This type represents the identifier to reference a managed object of + a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if attribute + "manoEntityComponents" in "ManoEntity" is supported by the API + producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + LogReport: + description: > + This type represents a log report, which provides information about a + compiled log and how to obtain it. It shall comply with the provisions + defined in table 8.6.2.7-1. + type: object + required: + - id + - objectInstanceId + - compilationTrigger + - readyTime + - fileFormat + - fileLocationInfo + - securityAndIntegrityInfo + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceId: + description: > + This type represents the identifier to reference a managed object of + a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if attribute + "manoEntityComponents" in "ManoEntity" is supported by the API + producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + compilationTrigger: + description: >- + The trigger for the compilation of the log file. + + Permitted values: - ON_DEMAND: created based on explicit request by + a client. - AUTOMATIC: created according to the logging job + compilation configuration. + type: string + enum: + - ON_DEMAND + - AUTOMATIC + readyTime: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + expiryTime: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + fileSize: + description: 'The size of the compiled log file in bytes, if known.' + type: integer + format: int32 + fileFormat: + description: The encoding used by the file. + type: string + fileLocationInfo: + description: >- + Location and address information of the compiled log file. The + consumer can use this information to obtain the compiled log file. + type: object + required: + - protocol + - fileEndpoint + properties: + protocol: + description: >- + Protocol over which the compiled log file can be retrieved. + + Permitted values: - HTTPS: transmission over HTTP Secure + (HTTPS). - SFTP: transmission over SSH file transfer protocol + (SFTP). - SCP: transmission over secure copy protocol (SCP). - + FTPS: transmission over file transfer protocol secure (FTPS), as + specified in IETF RFC 2228 [i.11], + using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, "private" protection level shall be used. + + HTTPS shall be supported, and other protocols may be supported. + type: string + enum: + - HTTPS + - SFTP + - SCP + - FTPS + fileEndpoint: + description: >- + The host name (or IP address), optionally a port number (if the + host with the compile log file uses a non-standard port number + as per the supported transmission protocol), a valid file + directory path, and the file name of the compiled log file, or a + valid URL. + type: string + format: URI + securityAndIntegrityInfo: + description: >- + Security and integrity information for the compilation of the log + files. + type: object + required: + - algorithm + - hash + - logFileSignature + - signingCertificate + properties: + algorithm: + description: >- + Algorithm used to generate the hash of the compiled log file. + Only SHA-256 and SHA-512 shall be used + type: string + hash: + description: >- + The hexadecimal value of the hash of the compiled log file. The + hash shall be computed from the encrypted compiled log file, in + case the encryption applies. + type: string + encryptionPublicKey: + description: >- + Public key used for the encryption of the compiled log file. + Shall be present if the compiled log file is encrypted. + type: string + cipherAlgorithm: + description: >- + The cryptographic algorithm used for the encryption. Shall be + present if the compiled log file is encrypted. Valid values are: + "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", + as specified in clause 6.5 of ETSI GS NFV-SEC 012 [14]. + type: string + logFileSignature: + description: >- + Signature to the compiled log file generated with the NFV-MANO + functional entity’s private key, which is used to ensure the + authenticity of the compiled log file. The signature shall be + applied according to the "encryptAndSignOrder" of the + "LoggingJobConfig". + type: string + signingCertificate: + description: >- + X.509 certificate with the NFV-MANO functional entity’s public + key used for verifying the log report and compiled log file + signatures. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances that are + logged. Shall be present if the logged object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an absolute + URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LogmSubscriptionRequest: + description: >- + Information on application context created by the MEC system type: + object + required: + - callbackUri + type: object + properties: + filter: + description: >- + This type represents a filter that can be used to subscribe for + notifications related to log management events. It shall comply with + the provisions defined in table 8.6.3.7-1. 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). + type: object + properties: + objectInstanceFilter: + description: >- + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. It shall comply with the provisions defined in Table + 4.3.2.2-1. + type: object + anyOf: + - oneOf: + - required: + - manoServiceIds + - required: + - manoServiceNames + - oneOf: + - required: + - manoServiceInterfaceIds + - required: + - manoServiceInterfaceNames + - oneOf: + - required: + - consumedManoInterfaceIds + - required: + - consumedManoInterfaceNames + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: >- + If present, match NFV-MANO services with an instance + identifier listed in this attribute. + 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.. + type: string + manoServiceNames: + description: >- + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + type: array + items: + type: string + manoServiceInterfaceIds: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + 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.. + type: string + manoServiceInterfaceNames: + description: >- + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this attribute. + type: array + items: + type: string + consumedManoInterfaceIds: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: >- + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this attribute. + type: array + items: + type: string + notificationTypes: + description: >- + Match particular notification types. Permitted values: - + LogReportAvailableNotification + type: string + enum: + - LogReportAvailableNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the + API consumer is willing to accept when receiving a notification. + Permitted values: * BASIC: In every HTTP request to the + notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is + sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. Shall + be present if authType is "BASIC" and the contained information + has not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information has + not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + CreateLoggingJobRequest: + description: Information on application context created by the MEC system + type: object + required: + - objectInstanceIds + - jobCriteria + - jobConfig + properties: + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging information is + requested to be collected. This attribute shall contain the + identifier of the instance of the object to be logged according to + their type. If more than one identifier is provided, values shall + all refer to object instances of the same type, for which the same + criteria is then applicable. + type: array + minItems: 1 + items: + description: > + This type represents the identifier to reference a managed object + of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if attribute + "manoEntityComponents" in "ManoEntity" is supported by the API + producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. It shall + comply with the provisions defined in table 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged information to + collect. + + Permitted values: - MESSAGES: logged NFV-MANO service interface + messages. - SERVICES: logged messages about processes pertaining + to NFV-MANO services. - SYSTEM: logged messages about the + NFV-MANO functional entity’s system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + messages on NFV-MANO service interfaces. It shall comply with + the provisions defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the interface. - + OUT: output messages from the interface. - ALL: both input + and output messages into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If + provided, only messages that match all the values provided + in the sub-attributes shall be logged. An API consumer can + provide more than one "matchingPattern" if combinations of + patterns are to be considered to match diverse sets of + interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from + 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, the HTTP + request method of the message shall be the same as the + value of this attribute. Valid values are specified in + IETF RFC 7231. The API producer shall support this + attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To match, + the request URI shall include the value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from + 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A list of + all valid HTTP response codes and their specification + documents can be obtained from the HTTP status code + registry. In addition, if supported, the following + patterns may be used (case-insensitive): - "1XX": for + matching any kind of informational response. - "2XX": + for matching any kind of success response. - "3XX": + for matching any kind redirection response. - "4XX": + for matching any kind of client error response. - + "5XX": for matching any kind of server error response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The header + field name shall be one of the supported fields in a + request message as defined in clause 4.2.2 of ETSI GS + NFV-SOL 013 or in a response message as defined in + clause 4.2.3 of ETSI GS NFV-SOL 013, in accordance + with the "direction" criteria input. The API producer + may support this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the value + in the header field indicated by "headerField" shall + be the same as in this attribute. Shall be provided if + a "headerField" is provided. The API producer may + support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part of + the interface message (e.g., the body of an HTTP + message). If provided, only messages with text in the + body part containing all the values from the list + shall match the filter. In addition to a matching + filter for the body of the message, a corresponding + "headerField" filter shall also be provided, with + "headerField" set to "Content-Type", to restrict + matching to appropriate textual payloads such as + "application/json" or "text/plain". The API producer + may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + messages about processes pertaining to NFV-MANO services. It + shall comply with the provisions defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage + collection processes associated to NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + system events of the NFV-MANO functional entity. It shall comply + with the provisions defined in table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default value is + "rfc5424", which represents the set of values specified in + the clause 6.2.1, table 2 of IETF RFC 5424. Other values may + be used to signal different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of the + system messages to collect. The NFV-MANO functional entity + shall collect system log messages, as indicated by the + "systemLogs" attribute, with severity levels lower (i.e., + more severe) or equal to the value provided by this present + attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. It shall + comply with the provisions defined in table 8.6.3.6-1. NOTE: The + present document version does not specify the support for "log + compilation and reporting based on events" as specified in clause + 6.6.2.2 of ETSI GS NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will report to + the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted values: + - REPORTING_ON_COMPILATION: the producer shall notify the + consumer once the compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the consumer can + query the logging jobs to know about the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the producer will + report to the consumer about the collected log information, + in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected log + data, in bytes. It is used when the compilation is based on the + size of the collected log data. If not present, a default value + as specified with the "defaultLogCompileBySizeValue" + configuration in the "ManoEntityConfigurableParams" shall be + used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered log, in + seconds. It is used when the compilation is based on a timer + (e.g., every 24 hours). If not present, a default value as + specified with the "defaultLogCompileByTimerValue" configuration + in the "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: Configuration about the security aspects of the logging job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log files. + Shall be present if the log file is requested to be + encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for the + encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the encryption of + the compiled log file. More than one algorithm can be + provided from higher (lower array index) to lower + (higher array index) precedence. Valid values are: + "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and + "AES-GCM-256", as specified in clause 6.5 of ETSI GS + NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and encrypting the + compiled log file. Valid values are: "encryptFirst", to + apply the order "first encrypt, then sign", and + "signFirst" for the order "first sign, then encrypt". + Default value is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the client + authentication with the file server. Shall be provided + if required by the type of transfer protocol. May be + omitted if the key has been provided to the API producer + by other means, or if it has already been provided in + some previous CreateLoggingJobRequest issued by the same + API consumer, whose public key has not changed. + type: string + LoggingJob: + description: >- + This type represents a logging job. It shall comply with the provisions + defined in table 8.6.2.6-1. + type: object + required: + - id + - objectInstanceIds + - jobCriteria + - jobConfig + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + objectInstanceIds: + description: >- + Identifiers of the object instance for which logging information is + collected. This attribute shall contain the identifier of the + instance of the object that is logged according to their type. + type: array + items: + description: > + This type represents the identifier to reference a managed object + of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if attribute + "manoEntityComponents" in "ManoEntity" is supported by the API + producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + jobCriteria: + description: >- + This type represents collection criteria for logging jobs. It shall + comply with the provisions defined in table 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged information to + collect. + + Permitted values: - MESSAGES: logged NFV-MANO service interface + messages. - SERVICES: logged messages about processes pertaining + to NFV-MANO services. - SYSTEM: logged messages about the + NFV-MANO functional entity’s system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + messages on NFV-MANO service interfaces. It shall comply with + the provisions defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the interface. - + OUT: output messages from the interface. - ALL: both input + and output messages into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If + provided, only messages that match all the values provided + in the sub-attributes shall be logged. An API consumer can + provide more than one "matchingPattern" if combinations of + patterns are to be considered to match diverse sets of + interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from + 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, the HTTP + request method of the message shall be the same as the + value of this attribute. Valid values are specified in + IETF RFC 7231. The API producer shall support this + attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To match, + the request URI shall include the value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from + 0 to 255. In case of an IPV6 address, string that + consists of groups of zero to four hexadecimal digits, + separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A list of + all valid HTTP response codes and their specification + documents can be obtained from the HTTP status code + registry. In addition, if supported, the following + patterns may be used (case-insensitive): - "1XX": for + matching any kind of informational response. - "2XX": + for matching any kind of success response. - "3XX": + for matching any kind redirection response. - "4XX": + for matching any kind of client error response. - + "5XX": for matching any kind of server error response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The header + field name shall be one of the supported fields in a + request message as defined in clause 4.2.2 of ETSI GS + NFV-SOL 013 or in a response message as defined in + clause 4.2.3 of ETSI GS NFV-SOL 013, in accordance + with the "direction" criteria input. The API producer + may support this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the value + in the header field indicated by "headerField" shall + be the same as in this attribute. Shall be provided if + a "headerField" is provided. The API producer may + support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part of + the interface message (e.g., the body of an HTTP + message). If provided, only messages with text in the + body part containing all the values from the list + shall match the filter. In addition to a matching + filter for the body of the message, a corresponding + "headerField" filter shall also be provided, with + "headerField" set to "Content-Type", to restrict + matching to appropriate textual payloads such as + "application/json" or "text/plain". The API producer + may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + messages about processes pertaining to NFV-MANO services. It + shall comply with the provisions defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage + collection processes associated to NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + system events of the NFV-MANO functional entity. It shall comply + with the provisions defined in table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default value is + "rfc5424", which represents the set of values specified in + the clause 6.2.1, table 2 of IETF RFC 5424. Other values may + be used to signal different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of the + system messages to collect. The NFV-MANO functional entity + shall collect system log messages, as indicated by the + "systemLogs" attribute, with severity levels lower (i.e., + more severe) or equal to the value provided by this present + attribute. + type: number + jobConfig: + description: >- + This type represents configuration data for a logging job. It shall + comply with the provisions defined in table 8.6.3.6-1. NOTE: The + present document version does not specify the support for "log + compilation and reporting based on events" as specified in clause + 6.6.2.2 of ETSI GS NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will report to + the consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted values: + - REPORTING_ON_COMPILATION: the producer shall notify the + consumer once the compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the consumer can + query the logging jobs to know about the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the producer will + report to the consumer about the collected log information, + in seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected log + data, in bytes. It is used when the compilation is based on the + size of the collected log data. If not present, a default value + as specified with the "defaultLogCompileBySizeValue" + configuration in the "ManoEntityConfigurableParams" shall be + used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered log, in + seconds. It is used when the compilation is based on a timer + (e.g., every 24 hours). If not present, a default value as + specified with the "defaultLogCompileByTimerValue" configuration + in the "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: Configuration about the security aspects of the logging job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log files. + Shall be present if the log file is requested to be + encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for the + encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the encryption of + the compiled log file. More than one algorithm can be + provided from higher (lower array index) to lower + (higher array index) precedence. Valid values are: + "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and + "AES-GCM-256", as specified in clause 6.5 of ETSI GS + NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and encrypting the + compiled log file. Valid values are: "encryptFirst", to + apply the order "first encrypt, then sign", and + "signFirst" for the order "first sign, then encrypt". + Default value is "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for + retrieving/accessing the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the client + authentication with the file server. Shall be provided + if required by the type of transfer protocol. May be + omitted if the key has been provided to the API producer + by other means, or if it has already been provided in + some previous CreateLoggingJobRequest issued by the same + API consumer, whose public key has not changed. + type: string + logReports: + description: Information about available log reports created by the logging job. + type: array + items: + type: object + required: + - logReportId + - logReportLoc + properties: + logReportId: + description: | + An identifier with the intention of being globally unique. + type: string + logReportLoc: + description: > + This type represents a link to a resource using an absolute + URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: Links for this resource. + type: object + required: + - self + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objects: + description: >- + Links to resources representing the object instances that are + logged. Shall be present if the logged object instance + information is accessible as a resource. + type: array + items: + description: > + This type represents a link to a resource using an absolute + URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LoggingJobCriteria: + description: >- + This type represents collection criteria for logging jobs. It shall + comply with the provisions defined in table 8.6.3.2-1. + type: object + required: + - loggingType + properties: + loggingType: + description: >- + Type of logging. This defines the types of logged information to + collect. + + Permitted values: - MESSAGES: logged NFV-MANO service interface + messages. - SERVICES: logged messages about processes pertaining to + NFV-MANO services. - SYSTEM: logged messages about the NFV-MANO + functional entity’s system enabled by the provider. + type: string + enum: + - MESSAGES + - SERVICES + - SYSTEM + messagesLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + messages on NFV-MANO service interfaces. It shall comply with the + provisions defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the interface. - + OUT: output messages from the interface. - ALL: both input and + output messages into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If provided, + only messages that match all the values provided in the + sub-attributes shall be logged. An API consumer can provide more + than one "matchingPattern" if combinations of patterns are to be + considered to match diverse sets of interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to + 255. In case of an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, separated by + colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, the HTTP + request method of the message shall be the same as the + value of this attribute. Valid values are specified in + IETF RFC 7231. The API producer shall support this + attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To match, the + request URI shall include the value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to + 255. In case of an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, separated by + colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A list of all + valid HTTP response codes and their specification + documents can be obtained from the HTTP status code + registry. In addition, if supported, the following + patterns may be used (case-insensitive): - "1XX": for + matching any kind of informational response. - "2XX": for + matching any kind of success response. - "3XX": for + matching any kind redirection response. - "4XX": for + matching any kind of client error response. - "5XX": for + matching any kind of server error response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The header field + name shall be one of the supported fields in a request + message as defined in clause 4.2.2 of ETSI GS NFV-SOL 013 + or in a response message as defined in clause 4.2.3 of + ETSI GS NFV-SOL 013, in accordance with the "direction" + criteria input. The API producer may support this + attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the value in + the header field indicated by "headerField" shall be the + same as in this attribute. Shall be provided if a + "headerField" is provided. The API producer may support + this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part of the + interface message (e.g., the body of an HTTP message). If + provided, only messages with text in the body part + containing all the values from the list shall match the + filter. In addition to a matching filter for the body of + the message, a corresponding "headerField" filter shall + also be provided, with "headerField" set to + "Content-Type", to restrict matching to appropriate + textual payloads such as "application/json" or + "text/plain". The API producer may support this attribute + type: string + servicesLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + messages about processes pertaining to NFV-MANO services. It shall + comply with the provisions defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage collection + processes associated to NFV-MANO services. + type: boolean + systemLogDetail: + description: >- + This type represents criteria for logging jobs to collect logged + system events of the NFV-MANO functional entity. It shall comply + with the provisions defined in table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default value is + "rfc5424", which represents the set of values specified in the + clause 6.2.1, table 2 of IETF RFC 5424. Other values may be used + to signal different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of the system + messages to collect. The NFV-MANO functional entity shall + collect system log messages, as indicated by the "systemLogs" + attribute, with severity levels lower (i.e., more severe) or + equal to the value provided by this present attribute. + type: number + LoggingJobMessagesCriteria: + description: >- + This type represents criteria for logging jobs to collect logged + messages on NFV-MANO service interfaces. It shall comply with the + provisions defined in table 8.6.3.3-1. + type: object + required: + - direction + properties: + direction: + description: >- + The direction of the interface messages to match. + + Permitted values: - IN: input messages into the interface. - OUT: + output messages from the interface. - ALL: both input and output + messages into/from the interface. + type: string + enum: + - IN + - OUT + - ALL + matchingPatterns: + description: >- + Patterns to be matched in the interface message. If provided, only + messages that match all the values provided in the sub-attributes + shall be logged. An API consumer can provide more than one + "matchingPattern" if combinations of patterns are to be considered + to match diverse sets of interface messages. + type: array + items: + type: object + anyOf: + - required: + - srcIpAddress + - required: + - dstIpAddress + - required: + - requestMethod + - required: + - requestUriPattern + - required: + - responseCodes + properties: + srcIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an IPV4 + address, string that consists of four decimal integers + separated by dots, each integer ranging from 0 to 255. In case + of an IPV6 address, string that consists of groups of zero to + four hexadecimal digits, separated by colons. + type: string + format: IP + requestMethod: + description: >- + HTTP request method to be matched. To match, the HTTP request + method of the message shall be the same as the value of this + attribute. Valid values are specified in IETF RFC 7231. The + API producer shall support this attribute. + type: string + requestUriPattern: + description: >- + Substring to be matched in the request URI. To match, the + request URI shall include the value of + this attribute as a substring. This is typically used to match messages which associate to RESTful + resources, or to a specific API (e.g., by using the "apiName" of the API). The API producer shall + support this attribute. + type: string + dstIpAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an IPV4 + address, string that consists of four decimal integers + separated by dots, each integer ranging from 0 to 255. In case + of an IPV6 address, string that consists of groups of zero to + four hexadecimal digits, separated by colons. + type: string + format: IP + responseCodes: + description: >- + HTTP response codes or patterns to match. A list of all valid + HTTP response codes and their specification documents can be + obtained from the HTTP status code registry. In addition, if + supported, the following patterns may be used + (case-insensitive): - "1XX": for matching any kind of + informational response. - "2XX": for matching any kind of + success response. - "3XX": for matching any kind redirection + response. - "4XX": for matching any kind of client error + response. - "5XX": for matching any kind of server error + response. + + The API producer shall support this attribute + type: array + items: + type: string + headerField: + description: >- + Name of the header field to be matched. The header field name + shall be one of the supported fields in a request message as + defined in clause 4.2.2 of ETSI GS NFV-SOL 013 or in a + response message as defined in clause 4.2.3 of ETSI GS NFV-SOL + 013, in accordance with the "direction" criteria input. The + API producer may support this attribute. + type: string + headerValue: + description: >- + Value in the header to be matched. To match, the value in the + header field indicated by "headerField" shall be the same as + in this attribute. Shall be provided if a "headerField" is + provided. The API producer may support this attribute. + type: string + bodyValues: + description: >- + A list of strings to be matched in the body part of the + interface message (e.g., the body of an HTTP message). If + provided, only messages with text in the body part containing + all the values from the list shall match the filter. In + addition to a matching filter for the body of the message, a + corresponding "headerField" filter shall also be provided, + with "headerField" set to "Content-Type", to restrict matching + to appropriate textual payloads such as "application/json" or + "text/plain". The API producer may support this attribute + type: string + LoggingJobServicesCriteria: + description: >- + This type represents criteria for logging jobs to collect logged + messages about processes pertaining to NFV-MANO services. It shall + comply with the provisions defined in table 8.6.3.4-1. + type: object + properties: + logGarbageCollection: + description: >- + Indicates to collect logged information about garbage collection + processes associated to NFV-MANO services. + type: boolean + LoggingJobSystemCriteria: + description: >- + This type represents criteria for logging jobs to collect logged system + events of the NFV-MANO functional entity. It shall comply with the + provisions defined in table 8.6.3.5-1. + type: object + required: + - systemLogs + - severityLevel + properties: + systemLogs: + 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. + type: object + severityLevelScheme: + description: >- + Identifies a severity level scheme. The default value is "rfc5424", + which represents the set of values specified in the clause 6.2.1, + table 2 of IETF RFC 5424. Other values may be used to signal + different schemes. + type: string + severityLevel: + description: >- + The severity level, which determines the severity of the system + messages to collect. The NFV-MANO functional entity shall collect + system log messages, as indicated by the "systemLogs" attribute, + with severity levels lower (i.e., more severe) or equal to the value + provided by this present attribute. + type: number + LoggingJobConfig: + description: >- + This type represents configuration data for a logging job. It shall + comply with the provisions defined in table 8.6.3.6-1. NOTE: The present + document version does not specify the support for "log compilation and + reporting based on events" as specified in clause 6.6.2.2 of ETSI GS + NFV-IFA 031. + type: object + required: + - reportingCondition + - securityConf + properties: + startTime: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + endTime: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + reportingCondition: + description: >- + Specifies the condition under which the producer will report to the + consumer about the compiled log data. + required: + - reportingType + properties: + reportingType: + description: >- + Specifies the type of reporting condition. Permitted values: - + REPORTING_ON_COMPILATION: the producer shall notify the consumer + once the compilation of the + collected logging data into a file is completed and a new log report is available. + - NO_REPORTING: no reporting is requested (the consumer can + query the logging jobs to know about the + availability of new log reports). + type: string + enum: + - REPORTING_ON_COMPILATION + - NO_REPORTING + minimumReportingPeriod: + description: >- + Specifies the minimum periodicity at which the producer will + report to the consumer about the collected log information, in + seconds. + type: integer + format: int32 + compileBySizeValue: + description: >- + An indicative size threshold for compiling the collected log data, + in bytes. It is used when the compilation is based on the size of + the collected log data. If not present, a default value as specified + with the "defaultLogCompileBySizeValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + compileByTimerValue: + description: >- + The periodicity threshold for compiling the filtered log, in + seconds. It is used when the compilation is based on a timer (e.g., + every 24 hours). If not present, a default value as specified with + the "defaultLogCompileByTimerValue" configuration in the + "ManoEntityConfigurableParams" shall be used + type: integer + format: int32 + securityConf: + description: Configuration about the security aspects of the logging job. + type: object + properties: + logFileEncryption: + description: >- + Information about the encryption of the compiled log files. + Shall be present if the log file is requested to be encrypted. + required: + - encryptionCertificate + - cipherAlgorithm + type: object + properties: + encryptionCertificate: + description: >- + X.509 certificate with the public key to use for the + encryption of the compiled log file. + type: string + cipherAlgorithm: + description: >- + Cryptographic algorithm to be used for the encryption of the + compiled log file. More than one algorithm can be provided + from higher (lower array index) to lower (higher array + index) precedence. Valid values are: "AES-CBC-128", + "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", as + specified in clause 6.5 of ETSI GS NFV-SEC 012 + type: array + items: + type: string + minItems: 1 + encryptAndSignOrder: + description: >- + Indication about the order in signing and encrypting the + compiled log file. Valid values are: "encryptFirst", to + apply the order "first encrypt, then sign", and "signFirst" + for the order "first sign, then encrypt". Default value is + "encryptFirst". + type: string + logTransferSecurity: + description: >- + Information about the security measures for retrieving/accessing + the compiled log files. + type: object + properties: + publicKey: + description: >- + The public key of the API consumer used for the client + authentication with the file server. Shall be provided if + required by the type of transfer protocol. May be omitted if + the key has been provided to the API producer by other + means, or if it has already been provided in some previous + CreateLoggingJobRequest issued by the same API consumer, + whose public key has not changed. + type: string + LogReportAvailableNotification: + description: >- + This notification informs the receiver that the log report of the + NFV-MANO functional entity is available. It shall comply with the + provisions defined in table 8.6.2.4-1. The notification shall be + triggered by the NFV-MANO functional entity when log information has + been collected by the logging job and the log report is available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - objectInstanceId + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + notificationType: + description: >- + Discriminator for the different notification types. Shall be set to + "LogReportAvailableNotification" for this notification type. + type: string + subscriptionId: + description: | + An identifier with the intention of being globally unique. + type: string + timeStamp: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + objectInstanceId: + description: > + This type represents the identifier to reference a managed object of + a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if attribute + "manoEntityComponents" in "ManoEntity" is supported by the API + producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + _links: + description: Links to resources related to this notification. + type: object + required: + - subscription + - logReports + properties: + subscription: + description: > + This type represents a link to a resource in a notification, + using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource in a notification, + using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LoggingJob: + description: > + This type represents a link to a resource in a notification, + using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + logReports: + description: >- + Link from which the available log report can be obtained. Due to + the relationship of the logging job compilation and the logging + information availability reporting, more than one logReport + notification link can be provided. + type: array + items: + description: > + This type represents a link to a resource in a notification, + using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + callbacks: + LogReportAvailableNotification: + '{$request.body#/callbackUri}': + description: >- + This resource represents a notification endpoint for NFV-MANO log + management. The API producer can use this resource to send + notifications related to log management events to a subscribed API + consumer, which has provided the URI of this resource during the + subscription process. + post: + description: >- + The POST method delivers a notification regarding a log management + event from the API producer to the API consumer. The API consumer + shall have previously created an "Individual subscription" resource + with a matching filter. This method shall follow the provisions + specified in the tables 8.5.9.3.1-1 and 8.5.9.3.1-2 for URI query + parameters, request and response data structures, and response + codes. + parameters: + - name: Version + description: > + Version of the API requested to use when responding to this + request. + in: header + required: true + schema: + type: string + - name: Authorization + description: > + The authorization token for the request. Reference: IETF RFC + 7235. + in: header + required: false + schema: + type: string + requestBody: + description: Notification about the availability of a log report. + content: + application/json: + schema: + description: >- + This notification informs the receiver that the log report + of the NFV-MANO functional entity is available. It shall + comply with the provisions defined in table 8.6.2.4-1. The + notification shall be triggered by the NFV-MANO functional + entity when log information has been collected by the + logging job and the log report is available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - objectInstanceId + - _links + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + notificationType: + description: >- + Discriminator for the different notification types. + Shall be set to "LogReportAvailableNotification" for + this notification type. + type: string + subscriptionId: + description: > + An identifier with the intention of being globally + unique. + type: string + timeStamp: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + objectInstanceId: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + _links: + description: Links to resources related to this notification. + type: object + required: + - subscription + - logReports + properties: + subscription: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + objectInstance: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + LoggingJob: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + logReports: + description: >- + Link from which the available log report can be + obtained. Due to the relationship of the logging job + compilation and the logging information availability + reporting, more than one logReport notification link + can be provided. + type: array + items: + description: > + This type represents a link to a resource in a + notification, using an absolute or relative URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + responses: + '204': + description: >- + Shall be returned when the notification has been delivered + successfully. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the + "ProblemDetails" structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if + the request URI contains incorrect query parameters or the + payload body contains a syntactically incorrect data structure), + the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of + the problem. + + If the response to a GET request which queries a container + resource would be so big that the performance of the API + producer is adversely affected, and the API producer does not + support paging for the affected resource, it shall respond with + this response code. The "ProblemDetails" structure shall be + provided, and should include in the "detail" attribute more + information about the source of the problem. + + If there is an application error related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and shall include in the "detail" attribute more information + about the source of the problem. + + If the request contains a malformed access token, the API + producer should respond with this response. The details of the + error shall be returned in the WWW Authenticate HTTP header, as + defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of + API requests and notifications, as defined in clauses 4.5.3.3 + and 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in IETF + RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular + request to a particular resource, the API producer shall respond + with this response code. The "ProblemDetails" structure shall be + provided. It should include in the "detail" attribute + information about the source of the problem, and may indicate + how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for + the resource addressed by the URI passed in the request or is + not willing to disclose that one exists, it shall respond with + this response code. The "ProblemDetails" structure may be + provided, including in the "detail" attribute information about + the source of the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource + addressed by the URI is a container resource which is designed + to contain child resources, but does not contain any child + resource at the time the request is received. For a GET request + to an existing empty container resource, a typical response + contains a 200 OK response code and a payload body with an empty + array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response + code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name + of a content type that is acceptable to the API producer, the + API producer shall respond with this response code. The + "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct + data (e.g. well-formed JSON) but the data cannot be processed + (e.g. because it fails validation against a schema), the API + producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of + the problem. + + This error response code is only applicable for methods that + have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's + input that cannot be easily mapped to any other HTTP response + code ("catch all error"), the API producer shall respond with + this response code. The "ProblemDetails" structure shall be + provided, and shall include in the "detail" attribute more + information about the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the + use of the "Retry-After" HTTP header and for the alternative to + refuse the connection. The "ProblemDetails" structure may be + omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + get: + description: >- + The GET method allows the API producer to test the notification + endpoint that is provided by the API consumer, e.g. during + subscription. This method shall follow the provisions specified in + the tables 8.5.9.3.2-1 and 8.5.9.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Version + description: > + Version of the API requested to use when responding to this + request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: + IETF RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: > + The authorization token for the request. Reference: IETF RFC + 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: >- + Shall be returned to indicate that the notification endpoint has + been tested successfully. The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the + "ProblemDetails" structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if + the request URI contains incorrect query parameters or the + payload body contains a syntactically incorrect data structure), + the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of + the problem. + + If the response to a GET request which queries a container + resource would be so big that the performance of the API + producer is adversely affected, and the API producer does not + support paging for the affected resource, it shall respond with + this response code. The "ProblemDetails" structure shall be + provided, and should include in the "detail" attribute more + information about the source of the problem. + + If there is an application error related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and shall include in the "detail" attribute more information + about the source of the problem. + + If the request contains a malformed access token, the API + producer should respond with this response. The details of the + error shall be returned in the WWW Authenticate HTTP header, as + defined in IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of + API requests and notifications, as defined in clauses 4.5.3.3 + and 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in IETF + RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular + request to a particular resource, the API producer shall respond + with this response code. The "ProblemDetails" structure shall be + provided. It should include in the "detail" attribute + information about the source of the problem, and may indicate + how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for + the resource addressed by the URI passed in the request or is + not willing to disclose that one exists, it shall respond with + this response code. The "ProblemDetails" structure may be + provided, including in the "detail" attribute information about + the source of the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource + addressed by the URI is a container resource which is designed + to contain child resources, but does not contain any child + resource at the time the request is received. For a GET request + to an existing empty container resource, a typical response + contains a 200 OK response code and a payload body with an empty + array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response + code. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name + of a content type that is acceptable to the API producer, the + API producer shall respond with this response code. The + "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct + data (e.g. well-formed JSON) but the data cannot be processed + (e.g. because it fails validation against a schema), the API + producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of + the problem. + + This error response code is only applicable for methods that + have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's + input that cannot be easily mapped to any other HTTP response + code ("catch all error"), the API producer shall respond with + this response code. The "ProblemDetails" structure shall be + provided, and shall include in the "detail" attribute more + information about the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the + use of the "Retry-After" HTTP header and for the alternative to + refuse the connection. The "ProblemDetails" structure may be + omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data + structure from IETF RFC 7807 [19] is reproduced inthis + structure. Compared to the general framework defined in + IETF RFC 7807 [19], the "status" and "detail" attributes + are mandated to be included by the present document, to + ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible + that particular APIs in the present document, or + particular implementations, define extensions to define + additional attributes that provide more information about + the error. The description column only provides some + explanation of the meaning to Facilitate understanding of + the design. For a full description, see IETF RFC 7807 + [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the + URI provides human-readable documentation for the + problem (e.g. using HTML) when dereferenced. When this + member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. + It should not change from occurrence to occurrence of + the problem, except for purposes of localization. If + type is given and other than "about:blank", this + attribute shall also be provided. A short, + human-readable summary of the problem type. It SHOULD + NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., + using proactive content negotiation; see [RFC7231], + Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the + problem. The HTTP status code ([RFC7231], Section 6) + generated by the origin server for this occurrence of + the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this + occurrence of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific + occurrence of the problem. It may yield further + information if dereferenced. + type: string + format: URI + -- GitLab From 11fe57a5d157b7b43e5c881a0c47e0c985a3637c Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 17 Aug 2020 12:29:27 +0500 Subject: [PATCH 059/116] Added Test Cases for ApiVersion.robot --- .../NFVMANOLogManagement-API/ApiVersion.robot | 211 ++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 SOL009/NFVMANOLogManagement-API/ApiVersion.robot diff --git a/SOL009/NFVMANOLogManagement-API/ApiVersion.robot b/SOL009/NFVMANOLogManagement-API/ApiVersion.robot new file mode 100644 index 000000000..5fb05242f --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/ApiVersion.robot @@ -0,0 +1,211 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library DependencyLibrary +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +POST API Version - Method not implemented + [Documentation] Test ID: 8.3.4.8.1 + ... Test title: POST API version - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version + [Documentation] Test ID: 8.3.4.8.2 + ... Test title: GET API Version + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version - Method not implemented + [Documentation] Test ID: 8.3.4.8.3 + ... Test title: PUT API Version - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version - Method not implemented + [Documentation] Test ID: 8.3.4.8.4 + ... Test title: PATCH API Version - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version - Method not implemented + [Documentation] Test ID: 8.3.4.8.5 + ... Test title: DELETE API Version - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +POST API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.4.8.6 + ... Test title: POST API version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version with apiMajorVerion + [Documentation] Test ID: 8.3.4.8.7 + ... Test title: GET API Version with apiMajorVerion + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.4.8.8 + ... Test title: PUT API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.4.8.9 + ... Test title: PATCH API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.4.8.10 + ... Test title: DELETE API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +*** Keywords *** +POST API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + ${schema} = Catenate ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK -- GitLab From e5c19d1197ee64d2f3dea5235b7c049728ccb97c Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 27 Aug 2020 13:45:34 +0500 Subject: [PATCH 060/116] fixed issues --- .../CompileLogTask.robot | 28 +++++++++---------- .../IndividualLoggingJob.robot | 5 ++-- .../IndividualReport.robot | 1 + .../LoggingJobs.robot | 8 +++--- .../NFVMANOLogManagementKeywords.robot | 6 ++-- .../Subscriptions.robot | 2 -- 6 files changed, 24 insertions(+), 26 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot index d7a15dae4..c4fd5b4c7 100644 --- a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot +++ b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot @@ -12,7 +12,7 @@ Request to compile the logged data into a file - Synchronous mode [Documentation] Test ID: 8.3.4.4.1 ... Test title: Request to compile the logged data into a file - Synchronous mode ... Test objective: The objective is to request to compile the logged data into a file in synchronous mode and perform a JSON schema validation on the returned log report data structure - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can decide immediately what to respond to a compile request @@ -27,7 +27,7 @@ Request to compile the logged data into a file - Asynchronous mode [Documentation] Test ID: 8.3.4.4.2 ... Test title: Request to compile the logged data into a file - Asynchronous mode ... Test objective: The objective is to request to compile the logged data into a file in asynchronous mode and perform a JSON schema validation on the returned log report data structure - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can not decide immediately what to respond to a compile request @@ -41,11 +41,11 @@ Request to compile the logged data into a file - Already Processing [Documentation] Test ID: 8.3.4.4.3 ... Test title: Request to compile the logged data into a file - Already Processing ... Test objective: The objective is to request to compile the logged data into a file when a log data compilation and report creation is already ongoing, or a log report has just been created, for the specified logging job at the time of processing the request and perform a JSON schema validation on the returned log report data structure - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Send Log data Request Check HTTP Response Status Code Is 303 Check Operation Occurrence Id @@ -54,7 +54,7 @@ Request to compile the logged data into a file with unprocessable entity [Documentation] Test ID: 8.3.4.4.4 ... Test title: Request to compile the logged data into a file with unprocessable entity ... Test objective: The objective is to test that the rrequest to compile the logged data into a file fails when error in request body. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -67,11 +67,11 @@ GET Compiled Log Data - Method not implemented [Documentation] Test ID: 8.3.4.4.5 ... Test title: GET Compiled Log Data - Method not implemented ... Test objective: The objective is to test that GET method is not allowed to retrieve compiled log data. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Get Compiled Log Data Check HTTP Response Status Code Is 405 @@ -79,11 +79,11 @@ PUT Compiled Log Data - Method not implemented [Documentation] Test ID: 8.3.4.4.6 ... Test title: PUT Compiled Log Data - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update compiled log data. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send PUT Compiled Log Data Check HTTP Response Status Code Is 405 @@ -91,11 +91,11 @@ PATCH Compiled Log Data - Method not implemented [Documentation] Test ID: 8.3.4.4.7 ... Test title: PATCH Compiled Log Data - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update compiled log data. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send PATCH Compiled Log Data Check HTTP Response Status Code Is 405 @@ -103,11 +103,11 @@ DELETE Compiled Log Data - Method not implemented [Documentation] Test ID: 8.3.4.4.8 ... Test title: DELETE Compiled Log Data - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update compiled log data. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.6.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send DELETE Compiled Log Data Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot index 2d3891671..c63498ea4 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot @@ -11,7 +11,7 @@ POST Individual Logging Job - Method not implemented [Documentation] Test ID: 8.3.4.2.1 ... Test title: POST Individual Logging Job - method not implemented ... Test objective: The objective is to test that POST method is not allowed to create an Indiviual Logging - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -31,7 +31,7 @@ GET individual Logging Job ... Post-Conditions: none GET individual Logging Job Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is PmJob + Check HTTP Response Body Json Schema Is LoggingJob Check HTTP Response Body Logging Job Identifier matches the requested Logging Job GET individual Logging Job with invalid resource identifier @@ -95,3 +95,4 @@ DELETE Individual Logging Job with invalid resource identifier ... Post-Conditions: none Send Delete request for individual Logging Job with invalid resource identifier Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails diff --git a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot index 66a8e04a3..e85b2ecf0 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot @@ -56,6 +56,7 @@ Get Individual Log Report with invalid resource endpoint ... Post-Conditions: none Get Individual Log Report with invalid resource endpoint Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails PUT Individual Log Report - Method not implemented [Documentation] Test ID: 8.3.4.3.5 diff --git a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot index dc4b136d2..97cbed71a 100644 --- a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot +++ b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot @@ -11,10 +11,10 @@ POST Create a new logging job [Documentation] Test ID: 8.3.4.1.1 ... Test title: POST Create a new logging job ... Test objective: The objective is to create a new logging job - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: + ... Applicability: none ... Post-Conditions: logging job created POST Create a new logging job Check HTTP Response Status Code Is 201 @@ -28,8 +28,8 @@ GET information about logging jobs ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Jobs Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index 198f96f6e..09c6698a8 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -99,7 +99,7 @@ GET Logging Jobs with fields attribute selector Set Suite Variable ${response} ${output} GET Logging Jobs with exclude_fields attribute selector - Log Query VNF The GET method queries information about multiple alarms, using fields + Log Query NFV-MANO The GET method queries information about multiple alarms, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_fields=${fields} @@ -150,7 +150,7 @@ Check Postcondition Logging Job is not Created Check HTTP Response Status Code Is 404 GET individual Logging Job - Log Trying to get a Pm Job + Log Trying to get a Logging Job Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} @@ -413,8 +413,6 @@ Send Post Request for Subscription POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} ${output}= Output response Set Suite Variable ${response} ${output} - Run Keyword If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 1 - ... Check Notification Endpoint Check HTTP Response Body LogmSubscription Attributes Values Match the Issued Subscription Log Check Response matches subscription diff --git a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot index 2e92a3ab6..eb6be70c6 100644 --- a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot @@ -89,7 +89,6 @@ GET Subscriptions - invalid resource endpoint Get all Subscriptions Check HTTP Response Status Code Is 404 - Create new Subscription [Documentation] Test ID 8.3.4.5.7 ... Test title: Create new Subscription @@ -105,7 +104,6 @@ Create new Subscription Check HTTP Response Body LogmSubscription Attributes Values Match the Issued Subscription Check Postcondition Subscription Is Set - Create request for duplicated Subscription not creating duplicated subscriptions [Tags] no-duplicated-subs [Documentation] Test ID 8.3.4.5.8 -- GitLab From 874406f9f7c04328c9b7917c6586ac94e70f9dff Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 13:39:25 +0500 Subject: [PATCH 061/116] minor bugs fixed and redundant post-conditions removed --- .../CompileLogTask.robot | 15 ++--- .../IndividualLoggingJob.robot | 9 ++- .../IndividualReport.robot | 14 ++-- .../IndividualSubscription.robot | 13 ++-- .../LoggingJobs.robot | 58 ++++++++--------- .../NFVMANOLogManagementKeywords.robot | 64 ++----------------- .../NotificationEndpoint.robot | 4 +- .../Subscriptions.robot | 11 ++-- 8 files changed, 63 insertions(+), 125 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot index c4fd5b4c7..224cf601f 100644 --- a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot +++ b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot @@ -16,31 +16,30 @@ Request to compile the logged data into a file - Synchronous mode ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can decide immediately what to respond to a compile request - ... Post-Conditions: The compiled log information is available. + ... Post-Conditions: none Send Log data Request in Synchronous mode Check HTTP Response Status Code Is 201 - Check Operation Occurrence Id + Check HTTP Response Header Contains Location Check HTTP Response Body Json Schema Is LogReport - Request to compile the logged data into a file - Asynchronous mode [Documentation] Test ID: 8.3.4.4.2 ... Test title: Request to compile the logged data into a file - Asynchronous mode - ... Test objective: The objective is to request to compile the logged data into a file in asynchronous mode and perform a JSON schema validation on the returned log report data structure + ... Test objective: The objective is to request to compile the logged data into a file in asynchronous mode ... Pre-conditions: none ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can not decide immediately what to respond to a compile request - ... Post-Conditions: The compiled log information is available. + ... Post-Conditions: none Send Log data Request in Asynchronous mode Check HTTP Response Status Code Is 202 - Check Operation Occurrence Id + Check HTTP Response Header Contains Location Wait for compilation success notification Request to compile the logged data into a file - Already Processing [Documentation] Test ID: 8.3.4.4.3 ... Test title: Request to compile the logged data into a file - Already Processing - ... Test objective: The objective is to request to compile the logged data into a file when a log data compilation and report creation is already ongoing, or a log report has just been created, for the specified logging job at the time of processing the request and perform a JSON schema validation on the returned log report data structure + ... Test objective: The objective is to request to compile the logged data into a file when a log data compilation and report creation is already ongoing, or a log report has just been created, for the specified logging job at the time of processing the request ... Pre-conditions: none ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -48,7 +47,7 @@ Request to compile the logged data into a file - Already Processing ... Post-Conditions: none Send Log data Request Check HTTP Response Status Code Is 303 - Check Operation Occurrence Id + Check HTTP Response Header Contains Location Request to compile the logged data into a file with unprocessable entity [Documentation] Test ID: 8.3.4.4.4 diff --git a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot index c63498ea4..8ddfedb7f 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot @@ -15,15 +15,14 @@ POST Individual Logging Job - Method not implemented ... Reference: clause 8.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Logging Job is not created on the NFV-MANO + ... Post-Conditions: none Send Post request for individual Logging Job Check HTTP Response Status Code Is 405 - Check Postcondition Logging Job is not Created GET individual Logging Job [Documentation] Test ID: 8.3.4.2.2 ... Test title: Get individual Logging Job - ... Test objective: The objective is to test the retrieval of an individual logging job and perform a JSON schema and content validation of the collected job data structure + ... Test objective: The objective is to test the retrieval of an individual logging job and perform a JSON schema validation of the collected job data structure ... Pre-conditions: Logging Job is already created. ... Reference: clause 8.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -55,7 +54,7 @@ PUT Individual Logging Job - Method not implemented ... Reference: clause 8.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Logging Job is not modified by the operation + ... Post-Conditions: none Send Put request for individual Logging Job Check HTTP Response Status Code Is 405 @@ -67,7 +66,7 @@ PATCH Individual Logging Job - Method not implemented ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Logging Job is not modified by the operation + ... Post-Conditions: none Send Patch request for individual Logging Job Check HTTP Response Status Code Is 405 diff --git a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot index e85b2ecf0..a285b1569 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot @@ -15,10 +15,9 @@ POST Individual Log Report - Method not implemented ... Reference: clause 8.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The log report is not created. + ... Post-Conditions: none Send Post request for Individual Log Report Check HTTP Response Status Code Is 405 - Check Postcondition Individual Log Report is not Created Get Individual Log Report [Documentation] Test ID: 8.3.4.3.2 @@ -66,10 +65,9 @@ PUT Individual Log Report - Method not implemented ... Reference: clause 8.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The NFV-MANO log report is not modified by the operation + ... Post-Conditions: none Send Put request for Individual Log Report Check HTTP Response Status Code Is 405 - Check Postcondition Individual Log Report is Unmodified (Implicit) PATCH Individual Log Report - Method not implemented [Documentation] Test ID: 8.3.4.3.6 @@ -79,10 +77,9 @@ PATCH Individual Log Report - Method not implemented ... Reference: clause 8.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The log report is not modified by the operation + ... Post-Conditions: none Send Patch request for Individual Log Report Check HTTP Response Status Code Is 405 - Check Postcondition Individual Log Report is Unmodified (Implicit) DELETE Individual Log Report - Method not implemented [Documentation] Test ID: 8.3.4.3.7 @@ -92,7 +89,6 @@ DELETE Individual Log Report - Method not implemented ... Reference: clause 8.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The log report is not deleted by the operation + ... Post-Conditions: none Send Delete request for Individual Log Report - Check HTTP Response Status Code Is 405 - Check Postcondition Individual Log Report Exists + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot index 22585149a..444831faa 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot @@ -10,7 +10,7 @@ Resource NFVMANOLogManagementKeywords.robot GET Individual Subscription [Documentation] Test ID: 8.3.4.6.1 ... 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 + ... Test objective: The objective is to test the retrieval of individual subscription and perform a JSON schema validation of the returned subscription data structure ... Pre-conditions: At least one subscription is available in the NFV-MANO. ... Reference: clause 8.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -66,10 +66,9 @@ POST Individual Subscription - Method not implemented ... Reference: clause 8.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The VNF Performance Subscription is not created on the NFV-MANO + ... Post-Conditions: none Send Post request for individual Subscription Check HTTP Response Status Code Is 405 - Check Postcondition Subscription is not Created PUT Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.4.6.6 @@ -79,10 +78,9 @@ PUT Individual Subscription - Method not implemented ... Reference: clause 8.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The subscription is not modified by the operation + ... Post-Conditions: none Send Put request for individual Subscription Check HTTP Response Status Code Is 405 - Check Postcondition Subscription is Unmodified (Implicit) PATCH Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.4.6.7 @@ -92,7 +90,6 @@ PATCH Individual Subscription - Method not implemented ... Reference: clause 8.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The subscription is not modified by the operation + ... Post-Conditions: none Send Patch request for individual Threshold - Check HTTP Response Status Code Is 405 - Check Postcondition Subscription is Unmodified (Implicit) \ No newline at end of file + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot index 97cbed71a..38d15c94b 100644 --- a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot +++ b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot @@ -10,7 +10,7 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} POST Create a new logging job [Documentation] Test ID: 8.3.4.1.1 ... Test title: POST Create a new logging job - ... Test objective: The objective is to create a new logging job + ... Test objective: The objective is to create a new logging job, and perform the JSON schema validation of the operation HTTP response. ... Pre-conditions: none ... Reference: clause 8.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -20,11 +20,12 @@ POST Create a new logging job Check HTTP Response Status Code Is 201 Check HTTP Response Header Contains Location Check HTTP Response Body Json Schema Is LoggingJob + Check Post-Condition Logging job is created GET information about logging jobs [Documentation] Test ID: 8.3.4.1.2 ... Test title: GET information logging jobs - ... Test objective: The objective is to retrieve information about logging jobs + ... Test objective: The objective is to retrieve information about logging jobs, and perform the JSON schema validation of the operation HTTP response. ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -34,7 +35,6 @@ GET information about logging jobs Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs - GET Logging jobs - invalid attribute-based filter [Documentation] Test ID: 8.3.4.1.3 ... Test title: GET Logging jobs - invalid attribute-based filter @@ -42,8 +42,8 @@ GET Logging jobs - invalid attribute-based filter ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Job with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -55,8 +55,8 @@ GET Logging jobs - invalid attribute selector ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Job with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -68,8 +68,8 @@ GET Logging jobs - Bad Request Response too Big ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Jobs Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -81,8 +81,8 @@ GET information about logging jobs with attribute-based filter ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Job with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs @@ -94,35 +94,35 @@ GET information about logging jobs with "all_fields" attribute selector ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging jobs with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs -GET information about Logging Jobs with exclude_default attribute selector +GET information about Logging Jobs with "exclude_default" attribute selector [Documentation] Test ID: 8.3.4.1.8 ... Test title: GET information about Logging Jobs with "exclude_default" attribute selector ... Test objective: The objective is to retrieve information about logging jobs with "exclude_default" attribute selector ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Jobs with exclude_default attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs -GET information about Logging Jobs with fields attribute selector +GET information about Logging Jobs with "fields" attribute selector [Documentation] Test ID: 8.3.4.1.9 ... Test title: GET information about Logging Jobs with fields attribute selector ... Test objective: The objective is to retrieve information about Logging Jobs with fields attribute selector ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Jobs with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs @@ -134,7 +134,7 @@ GET information about Logging Jobs with "exclude_fields" attribute selector ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: + ... Applicability: none ... Post-Conditions: none GET Logging Jobs with exclude_fields attribute selector Check HTTP Response Status Code Is 200 @@ -147,11 +147,11 @@ GET information about Logging Jobs with Paged Response ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none GET Logging Jobs Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link PUT Logging Jobs - Method not implemented [Documentation] Test ID: 8.3.4.1.12 @@ -160,7 +160,7 @@ PUT Logging Jobs - Method not implemented ... Pre-conditions: ... Reference: clause 8.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: + ... Applicability: none ... Post-Conditions: none PUT Logging Jobs Check HTTP Response Status Code Is 405 @@ -169,10 +169,10 @@ PATCH Logging Jobs - Method not implemented [Documentation] Test ID: 8.3.4.1.13 ... Test title: PATCH Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: + ... Applicability: none ... Post-Conditions: none PATCH Logging Jobs Check HTTP Response Status Code Is 405 @@ -181,10 +181,10 @@ DELETE Logging Jobs - Method not implemented [Documentation] Test ID: 8.3.4.1.14 ... Test title: DELETE Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: Logging Job is not deleted. + ... Applicability: none + ... Post-Conditions: none DELETE Logging Jobs Check HTTP Response Status Code Is 405 diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index 09c6698a8..9eb34dba4 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -9,9 +9,7 @@ Library Collections Library JSONSchemaLibrary schemas/ Library Process - *** Keywords *** - Check HTTP Response Status Code Is [Arguments] ${expected_status} ${status}= Convert To Integer ${expected_status} @@ -40,6 +38,10 @@ POST Create a new logging job ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} +Check Post-Condition Logging job is created + GET Logging Jobs + Check HTTP Response Status Code Is 200 + GET Logging Jobs Log Query to GET information about logging jobs. Set Headers {"Accept":"${ACCEPT}"} @@ -106,7 +108,7 @@ GET Logging Jobs with exclude_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Check LINK in Header +Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} @@ -140,15 +142,6 @@ Send Post request for individual Logging Job ${output}= Output response Set Suite Variable ${response} ${output} -Check Postcondition Logging Job is not Created - Log Trying to get a new Logging Job - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId} - ${output}= Output response - Set Suite Variable ${response} ${output} - Check HTTP Response Status Code Is 404 - GET individual Logging Job Log Trying to get a Logging Job Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -219,15 +212,6 @@ Send Post request for Individual Log Report ${output}= Output response Set Suite Variable ${response} ${output} -Check Postcondition Individual Log Report is not Created - Log Trying to get a new report - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${newReportId} - ${output}= Output response - Set Suite Variable ${response} ${output} - Check HTTP Response Status Code Is 404 - Get Individual Log Report Log Trying to get log report Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -270,18 +254,6 @@ Send Delete request for Individual Log Report DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/log_reports/${reportId} ${output}= Output response Set Suite Variable ${response} ${output} - -Check Postcondition Individual Log Report is Unmodified (Implicit) - Log Check Postcondition Log job is not modified - Get Individual Log Report - Log Check Response matches original report - ${report}= evaluate json.loads('''${response['body']}''') json - Should Be Equal ${origResponse['body']['readyTime']} ${report['readyTime']} - -Check Postcondition Individual Log Report Exists - Log Checking that report still exists - Get Individual Log Report - Check HTTP Response Status Code Is 200 Send Log data Request in Synchronous mode Log Request to compile the logged data into a file Synchronous mode @@ -294,7 +266,7 @@ Send Log data Request in Synchronous mode ${body}= Output response Set Suite Variable &{response} ${body} -Check Operation Occurrence Id +Check HTTP Response Header Contains Location ${vnfLcmOpOccId}= Get Value From Json ${response['headers']} $..Location Should Not Be Empty ${vnfLcmOpOccId} @@ -480,11 +452,6 @@ Send Delete Request for Subscriptions ${output}= Output response Set Suite Variable ${response} ${output} -Check Postcondition Subscriptions Exists - Log Checking that subscriptions exists - Get all Subscriptions - Check HTTP Response Status Code Is 200 - Get Individual Subscription Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -545,21 +512,4 @@ Send Patch request for individual Threshold Set Suite Variable ${origResponse} ${origOutput} PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} ${output}= Output response - Set Suite Variable @{response} ${output} - -Check Postcondition Subscription is Unmodified (Implicit) - Log Check postconidtion subscription not modified - GET individual Subscription - Log Check Response matches original Subscription - ${subscription}= evaluate json.loads('''${response['body']}''') json - Should Be Equal As Strings ${origResponse['body']['id']} ${subscription.id} - Should Be Equal As Strings ${origResponse['body']['callbackUri']} ${subscription.callbackUri} - -Check Postcondition Subscription is not Created - Log Trying to get a new subscription - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} - ${output}= Output response - Set Suite Variable @{response} ${output} - Check HTTP Response Status Code Is 404 \ No newline at end of file + Set Suite Variable @{response} ${output} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot b/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot index 8ebf99df1..d4bf4edf0 100644 --- a/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot +++ b/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot @@ -15,7 +15,7 @@ Log Report Avaliable Notification [Documentation] Test ID: 8.3.4.7.1 ... Test title: Log Report Avaliable Notification ... Test objective: The objective is to test the dispatch of Log Report Avaliable Notification when new log report is available 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: + ... Pre-conditions: none ... Reference: clause 8.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -23,8 +23,6 @@ Log Report Avaliable Notification Trigger the availability of Log Report (external action) Check Log Report Available Notification Http POST Request Body Json Schema Is LogReportAvailableNotification Check Log Report Available Notification Http POST Request Body notificationType attribute Is LogReportAvailableNotification - - *** Keywords *** Trigger the availability of Log Report (external action) #do nothing diff --git a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot index eb6be70c6..c9f2350ff 100644 --- a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot @@ -44,11 +44,11 @@ GET Subscriptions with Paged Response ... Pre-conditions: At least one subscription is available in the NFV-MANO. ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get all Subscriptions Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link GET Subscriptions - invalid attribute-based filter [Documentation] Test ID: 8.3.4.5.4 @@ -168,7 +168,6 @@ DELETE Subscriptions - Method not implemented ... Reference: clause 8.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The subscriptions are not deleted by the failed operation + ... Post-Conditions: none Send Delete Request for Subscriptions - Check HTTP Response Status Code Is 405 - Check Postcondition Subscriptions Exists \ No newline at end of file + Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From 14bb2b3de2e60ea674a8d618f8272e3c69a53f89 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 14:51:48 +0500 Subject: [PATCH 062/116] templating, minor bugs fix and new testcases added --- .../IndividualLoggingJob.robot | 6 ++-- .../IndividualReport.robot | 8 ++--- .../IndividualSubscription.robot | 6 ++-- .../LoggingJobs.robot | 35 +++++++++++++------ .../NFVMANOLogManagementKeywords.robot | 34 ++++++++++++------ .../Subscriptions.robot | 6 ++-- .../environment/variables.txt | 4 ++- .../jsons/compileLogRequest.json | 6 ++-- .../jsons/createLoggingJobRequest.json | 12 ++++--- .../jsons/subscriptions.json | 2 +- 10 files changed, 75 insertions(+), 44 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot index 8ddfedb7f..40505fdc8 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot @@ -50,7 +50,7 @@ PUT Individual Logging Job - Method not implemented [Documentation] Test ID: 8.3.4.2.4 ... Test title: PUT Individual Logging Job - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing Logging Job - ... Pre-conditions: Logging Job is already created. + ... Pre-conditions: none ... Reference: clause 8.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -62,7 +62,7 @@ PATCH Individual Logging Job - Method not implemented [Documentation] Test ID: 8.3.4.2.5 ... Test title: PATCH Individual Logging Job - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new Logging Job - ... Pre-conditions: Logging Job is already created. + ... Pre-conditions: none ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -94,4 +94,4 @@ DELETE Individual Logging Job with invalid resource identifier ... Post-Conditions: none Send Delete request for individual Logging Job with invalid resource identifier Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is ProblemDetails + Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot index a285b1569..d96270ac4 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot @@ -11,7 +11,7 @@ POST Individual Log Report - Method not implemented [Documentation] Test ID: 8.3.4.3.1 ... Test title: POST Individual Log Report - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new log report. - ... Pre-conditions: Logging Job is already created. + ... Pre-conditions: none ... Reference: clause 8.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -61,7 +61,7 @@ PUT Individual Log Report - Method not implemented [Documentation] Test ID: 8.3.4.3.5 ... Test title: PUT Individual Log Report - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing log report. - ... Pre-conditions: One or more log reports are set. + ... Pre-conditions: none ... Reference: clause 8.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -73,7 +73,7 @@ PATCH Individual Log Report - Method not implemented [Documentation] Test ID: 8.3.4.3.6 ... Test title: PATCH Individual Log Report - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existinglog report. - ... Pre-conditions: One or more log reports are set. + ... Pre-conditions: none ... Reference: clause 8.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -85,7 +85,7 @@ DELETE Individual Log Report - Method not implemented [Documentation] Test ID: 8.3.4.3.7 ... Test title: DELETE Individual Log Report - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete an existing log report. - ... Pre-conditions: One or more log reports are set. + ... Pre-conditions: none ... Reference: clause 8.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot index 444831faa..cbc6a2153 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot @@ -62,7 +62,7 @@ POST Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.4.6.5 ... 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: + ... Pre-conditions: none ... Reference: clause 8.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -74,7 +74,7 @@ PUT Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.4.6.6 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 8.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -86,7 +86,7 @@ PATCH Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.4.6.7 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 8.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot index 38d15c94b..c72f4b107 100644 --- a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot +++ b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot @@ -77,7 +77,7 @@ GET Logging jobs - Bad Request Response too Big GET information about logging jobs with attribute-based filter [Documentation] Test ID: 8.3.4.1.6 ... Test title: GET information about logging jobs with attribute-based filter - ... Test objective: The objective is to retrieve information about the logging jobs with attribute filters + ... Test objective: The objective is to retrieve information about the logging jobs with attribute filters, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -90,7 +90,7 @@ GET information about logging jobs with attribute-based filter GET information about logging jobs with "all_fields" attribute selector [Documentation] Test ID: 8.3.4.1.7 ... Test title: GET information about logging jobs with "all_fields" attribute selector - ... Test objective: The objective is to retrieve information about logging jobs with "all_fields" attribute selector + ... Test objective: The objective is to retrieve information about logging jobs with "all_fields" attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -103,7 +103,7 @@ GET information about logging jobs with "all_fields" attribute selector GET information about Logging Jobs with "exclude_default" attribute selector [Documentation] Test ID: 8.3.4.1.8 ... Test title: GET information about Logging Jobs with "exclude_default" attribute selector - ... Test objective: The objective is to retrieve information about logging jobs with "exclude_default" attribute selector + ... Test objective: The objective is to retrieve information about logging jobs with "exclude_default" attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -117,7 +117,7 @@ GET information about Logging Jobs with "exclude_default" attribute selector GET information about Logging Jobs with "fields" attribute selector [Documentation] Test ID: 8.3.4.1.9 ... Test title: GET information about Logging Jobs with fields attribute selector - ... Test objective: The objective is to retrieve information about Logging Jobs with fields attribute selector + ... Test objective: The objective is to retrieve information about Logging Jobs with fields attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -130,7 +130,7 @@ GET information about Logging Jobs with "fields" attribute selector GET information about Logging Jobs with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.4.1.10 ... Test title: GET information about Logging Jobs with "exclude_fields" attribute selector - ... Test objective: The objective is to retrieve information about the Logging Jobs with "exclude_fields" attribute selector + ... Test objective: The objective is to retrieve information about the Logging Jobs with "exclude_fields" attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -140,8 +140,21 @@ GET information about Logging Jobs with "exclude_fields" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs -GET information about Logging Jobs with Paged Response +GET information about Logging Jobs with "fields" and "exclude_default" attribute selector [Documentation] Test ID: 8.3.4.1.11 + ... Test title: GET information about Logging Jobs with fields and exclude_default attribute selector + ... Test objective: The objective is to retrieve information about Logging Jobs with fields and exclude_default attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: At least one logging job is created. + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET Logging Jobs with fields and exclude_default attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LoggingJobs + +GET information about Logging Jobs with Paged Response + [Documentation] Test ID: 8.3.4.1.12 ... Test title: GET information about Logging Jobs with Paged Response ... Test objective: The objective is to query information about Logging Jobs to get Paged Response. ... Pre-conditions: At least one logging job is created. @@ -154,10 +167,10 @@ GET information about Logging Jobs with Paged Response Check HTTP Response Header Contains Link PUT Logging Jobs - Method not implemented - [Documentation] Test ID: 8.3.4.1.12 + [Documentation] Test ID: 8.3.4.1.13 ... Test title: PUT Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -166,7 +179,7 @@ PUT Logging Jobs - Method not implemented Check HTTP Response Status Code Is 405 PATCH Logging Jobs - Method not implemented - [Documentation] Test ID: 8.3.4.1.13 + [Documentation] Test ID: 8.3.4.1.14 ... Test title: PATCH Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none @@ -178,7 +191,7 @@ PATCH Logging Jobs - Method not implemented Check HTTP Response Status Code Is 405 DELETE Logging Jobs - Method not implemented - [Documentation] Test ID: 8.3.4.1.14 + [Documentation] Test ID: 8.3.4.1.15 ... Test title: DELETE Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none @@ -187,4 +200,4 @@ DELETE Logging Jobs - Method not implemented ... Applicability: none ... Post-Conditions: none DELETE Logging Jobs - Check HTTP Response Status Code Is 405 + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index 9eb34dba4..d2cc5cae0 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -1,5 +1,6 @@ *** Settings *** -Resource environment/variables.txt +Library String +Resource environment/variables.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library MockServerLibrary Library OperatingSystem @@ -100,6 +101,14 @@ GET Logging Jobs with fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} +GET Logging Jobs with fields and exclude_default attribute selector + Log Queries information about Logging Jobs, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs?exclude_default&fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + GET Logging Jobs with exclude_fields attribute selector Log Query NFV-MANO The GET method queries information about multiple alarms, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -261,7 +270,8 @@ Send Log data Request in Synchronous mode Set Headers {"Accept": "${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body}= Get File jsons/compileLogRequest.json + ${template}= Get File jsons/compileLogRequest.json + ${body}= Format String ${template} objectInstanceId=${objectInstanceId} Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log ${body} ${body}= Output response Set Suite Variable &{response} ${body} @@ -276,7 +286,8 @@ Send Log data Request in Asynchronous mode Set Headers {"Accept": "${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body}= Get File jsons/compileLogRequest.json + ${template}= Get File jsons/compileLogRequest.json + ${body}= Format String ${template} objectInstanceId=${objectInstanceId} Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log ${body} ${body}= Output response Set Suite Variable &{response} ${body} @@ -299,7 +310,8 @@ Send Log data Request Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Set Headers {"Authorization":"${AUTHORIZATION}"} - ${body}= Get File jsons/createLoggingJobRequest.json + ${template}= Get File jsons/createLoggingJobRequest.json + ${body}= Format String ${template} objectInstanceId=${objectInstanceId} Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/${logJobId}/compile_log ${body} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} @@ -351,7 +363,6 @@ Check Notification Endpoint Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} Clear Requests ${callback_endpoint} - Get all Subscriptions [Documentation] The api consumer can use this method to query the list of active subscriptions to log management notifications Set headers {"Accept": "application/json"} @@ -381,14 +392,16 @@ Send Post Request for Subscription Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} - ${body_request}= Get File jsons/subscriptions.json - POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${template}= Get File jsons/subscriptions.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} Check HTTP Response Body LogmSubscription Attributes Values Match the Issued Subscription Log Check Response matches subscription - ${body}= Get File jsons/subscriptions.json + ${template}= Get File jsons/subscriptions.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} ${subscription}= evaluate json.loads('''${body}''') json Should Be Equal As Strings ${response['body']['callbackUri']} ${subscription['callbackUri']} @@ -404,8 +417,9 @@ Send Post Request for Duplicated Subscription Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body_request}= Get File jsons/subscriptions.json - POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${template}= Get File jsons/subscriptions.json + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot index c9f2350ff..bc85a54c7 100644 --- a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot @@ -140,7 +140,7 @@ PUT Subscriptions - Method not implemented [Documentation] Test ID 8.3.4.5.10 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 8.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -152,7 +152,7 @@ PATCH Subscriptions - Method not implemented [Documentation] Test ID 8.3.4.5.11 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 8.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -164,7 +164,7 @@ DELETE Subscriptions - Method not implemented [Documentation] Test ID 8.3.4.5.12 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 8.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index 5bdb72512..aff90b476 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -59,4 +59,6 @@ ${polling} 10 sec ${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa ${erroneousSubscriptionId} erroneousSubscriptionId -${newSubscriptionId} newSubsciptionId \ No newline at end of file +${newSubscriptionId} newSubsciptionId + +${objectInstanceId} 4bd7-94b4-6bbb86-9c79aa \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json b/SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json index 2d3240611..526c6caa2 100644 --- a/SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json +++ b/SOL009/NFVMANOLogManagement-API/jsons/compileLogRequest.json @@ -1,3 +1,3 @@ -{ - "objectInstanceId":"" -} \ No newline at end of file +{{ + "objectInstanceId":"{objectInstanceId}" +}} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json b/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json index a7d36a3e9..ec6656b6f 100644 --- a/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json +++ b/SOL009/NFVMANOLogManagement-API/jsons/createLoggingJobRequest.json @@ -1,6 +1,8 @@ -{ - "objectInstanceIds":[], - "jobCriteria":{ +{{ + "objectInstanceIds":[ + "{objectInstanceId}" + ], + "jobCriteria":{{ "loggingType":"MESSAGES" - } -} + }} +}} diff --git a/SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json b/SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json index 3fcc4e59b..b81c74461 100644 --- a/SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json +++ b/SOL009/NFVMANOLogManagement-API/jsons/subscriptions.json @@ -1,5 +1,5 @@ { - "callbackUri": "http://127.0.0.1/subscribe", + "callbackUri": "{callback_uri}{callback_endpoint}", "filter": { "notificationTypes": ["ThresholdCrossedNotification"] } -- GitLab From 138f73c0a97d6ccdf3638cd6af5f6c95fa91ee33 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 15:02:20 +0500 Subject: [PATCH 063/116] authorization testcases added --- .../LoggingJobs.robot | 37 ++++++++++++++++++- .../NFVMANOLogManagementKeywords.robot | 29 +++++++++++++++ .../environment/variables.txt | 1 + 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot index c72f4b107..329a1c5f3 100644 --- a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot +++ b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot @@ -113,7 +113,6 @@ GET information about Logging Jobs with "exclude_default" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is LoggingJobs - GET information about Logging Jobs with "fields" attribute selector [Documentation] Test ID: 8.3.4.1.9 ... Test title: GET information about Logging Jobs with fields attribute selector @@ -166,6 +165,42 @@ GET information about Logging Jobs with Paged Response Check HTTP Response Status Code Is 200 Check HTTP Response Header Contains Link +GET information about Logging Jobs with malformed authorization token + [Documentation] Test ID: 8.3.1.8.13 + ... Test title: GET information about Logging Jobs with malformed authorization token + ... Test objective: The objective is to test that the retrieval of information about Logging Jobs fails when using malformed authorization token. + ... Pre-conditions: none + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.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 + GET Logging Jobs with malformed authorization token + Check HTTP Response Status Code Is 401 + +GET information about Logging Jobs without authorization token + [Documentation] Test ID: 8.3.4.1.14 + ... Test title: GET information about Logging Jobs without authorization token + ... Test objective: The objective is to test that the retrieval of information about Logging Jobs fails when omitting the authorization token. + ... Pre-conditions: none + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.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 + GET Logging Jobs without authorization token + Check HTTP Response Status Code Is 401 + +GET information about Logging Jobs with expired or revoked authorization token + [Documentation] Test ID: 8.3.4.1.15 + ... Test title: GET information about Logging Jobs with expired or revoked authorization token + ... Test objective: The objective is to test that the retrieval of information about Logging Jobs fails when using expired or revoked authorization token. + ... Pre-conditions: none + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.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 + GET Logging Jobs with expired or revoked authorization token + Check HTTP Response Status Code Is 401 + PUT Logging Jobs - Method not implemented [Documentation] Test ID: 8.3.4.1.13 ... Test title: PUT Logging Jobs - Method not implemented diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index d2cc5cae0..dfaf7ab2e 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -52,6 +52,35 @@ GET Logging Jobs ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} +GET Logging Jobs with malformed authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Logging Jobs without authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries omitting token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Logging Jobs with expired or revoked authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs + ${output}= Output response + Set Suite Variable ${response} ${output} + GET Logging Job with invalid filter Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index aff90b476..4a30d550a 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -9,6 +9,7 @@ ${erroneousLogJobId} wrongID ${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 ${NEG_AUTHORIZATION} Bearer negativetoken +${BAD_AUTHORIZATION} Bear sometoken ${CONTENT_TYPE} application/json ${CONTENT_TYPE_JSON} application/json -- GitLab From b297077242a5a7f46c1cd9735d829d4d41bb3e87 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 7 Oct 2020 11:50:33 +0500 Subject: [PATCH 064/116] template fix added --- .../NFVMANOLogManagementKeywords.robot | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index dfaf7ab2e..6aedfe83c 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -34,7 +34,8 @@ POST Create a new logging job Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Set Headers {"Authorization":"${AUTHORIZATION}"} - ${body}= Get File jsons/createLoggingJobRequest.json + ${template}= Get File jsons/createLoggingJobRequest.json + ${body}= Format String ${template} objectInstanceId=${objectInstanceId} Post ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs ${body} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -- GitLab From 870db8b284d55fe4be14d598fdc743e07e490415 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 22 Oct 2020 18:43:22 +0200 Subject: [PATCH 065/116] updated references --- .../NFVMANOLogManagement-API/ApiVersion.robot | 20 +++++------ .../CompileLogTask.robot | 16 ++++----- .../IndividualLoggingJob.robot | 14 ++++---- .../IndividualReport.robot | 14 ++++---- .../IndividualSubscription.robot | 14 ++++---- .../LoggingJobs.robot | 36 +++++++++---------- 6 files changed, 57 insertions(+), 57 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/ApiVersion.robot b/SOL009/NFVMANOLogManagement-API/ApiVersion.robot index 5fb05242f..f97546b9e 100644 --- a/SOL009/NFVMANOLogManagement-API/ApiVersion.robot +++ b/SOL009/NFVMANOLogManagement-API/ApiVersion.robot @@ -11,7 +11,7 @@ POST API Version - Method not implemented ... Test title: POST API version - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ GET API Version ... Test title: GET API Version ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ PUT API Version - Method not implemented ... Test title: PUT API Version - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PATCH API Version - Method not implemented ... Test title: PATCH API Version - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ DELETE API Version - Method not implemented ... Test title: DELETE API Version - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -72,7 +72,7 @@ POST API Version with apiMajorVerion - Method not implemented ... Test title: POST API version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -84,7 +84,7 @@ GET API Version with apiMajorVerion ... Test title: GET API Version with apiMajorVerion ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -97,7 +97,7 @@ PUT API Version with apiMajorVerion - Method not implemented ... Test title: PUT API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -109,7 +109,7 @@ PATCH API Version with apiMajorVerion - Method not implemented ... Test title: PATCH API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -121,7 +121,7 @@ DELETE API Version with apiMajorVerion - Method not implemented ... Test title: DELETE API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot index 224cf601f..269d5ea73 100644 --- a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot +++ b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot @@ -13,7 +13,7 @@ Request to compile the logged data into a file - Synchronous mode ... Test title: Request to compile the logged data into a file - Synchronous mode ... Test objective: The objective is to request to compile the logged data into a file in synchronous mode and perform a JSON schema validation on the returned log report data structure ... Pre-conditions: none - ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can decide immediately what to respond to a compile request ... Post-Conditions: none @@ -27,7 +27,7 @@ Request to compile the logged data into a file - Asynchronous mode ... Test title: Request to compile the logged data into a file - Asynchronous mode ... Test objective: The objective is to request to compile the logged data into a file in asynchronous mode ... Pre-conditions: none - ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can not decide immediately what to respond to a compile request ... Post-Conditions: none @@ -41,7 +41,7 @@ Request to compile the logged data into a file - Already Processing ... Test title: Request to compile the logged data into a file - Already Processing ... Test objective: The objective is to request to compile the logged data into a file when a log data compilation and report creation is already ongoing, or a log report has just been created, for the specified logging job at the time of processing the request ... Pre-conditions: none - ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ Request to compile the logged data into a file with unprocessable entity ... Test title: Request to compile the logged data into a file with unprocessable entity ... Test objective: The objective is to test that the rrequest to compile the logged data into a file fails when error in request body. ... Pre-conditions: none - ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -67,7 +67,7 @@ GET Compiled Log Data - Method not implemented ... Test title: GET Compiled Log Data - Method not implemented ... Test objective: The objective is to test that GET method is not allowed to retrieve compiled log data. ... Pre-conditions: none - ... Reference: clause 8.5.6.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -79,7 +79,7 @@ PUT Compiled Log Data - Method not implemented ... Test title: PUT Compiled Log Data - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update compiled log data. ... Pre-conditions: none - ... Reference: clause 8.5.6.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -91,7 +91,7 @@ PATCH Compiled Log Data - Method not implemented ... Test title: PATCH Compiled Log Data - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update compiled log data. ... Pre-conditions: none - ... Reference: clause 8.5.6.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -103,7 +103,7 @@ DELETE Compiled Log Data - Method not implemented ... Test title: DELETE Compiled Log Data - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to update compiled log data. ... Pre-conditions: none - ... Reference: clause 8.5.6.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.6.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot index 40505fdc8..576a9dcde 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualLoggingJob.robot @@ -12,7 +12,7 @@ POST Individual Logging Job - Method not implemented ... Test title: POST Individual Logging Job - method not implemented ... Test objective: The objective is to test that POST method is not allowed to create an Indiviual Logging ... Pre-conditions: none - ... Reference: clause 8.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.4.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -24,7 +24,7 @@ GET individual Logging Job ... Test title: Get individual Logging Job ... Test objective: The objective is to test the retrieval of an individual logging job and perform a JSON schema validation of the collected job data structure ... Pre-conditions: Logging Job is already created. - ... Reference: clause 8.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET individual Logging Job with invalid resource identifier ... Test title: Get individual Logging Job with invalid resource identifier ... Test objective: The objective is to test that the retrieval of an individual logging job fails when using an invalid resource identifier, and perform the JSON schema validation of the failed operation HTTP response ... Pre-conditions: Logging Job is already created. - ... Reference: clause 8.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,7 @@ PUT Individual Logging Job - Method not implemented ... Test title: PUT Individual Logging Job - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing Logging Job ... Pre-conditions: none - ... Reference: clause 8.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.4.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,7 @@ PATCH Individual Logging Job - Method not implemented ... Test title: PATCH Individual Logging Job - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing new Logging Job ... Pre-conditions: none - ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 6.5.4.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -75,7 +75,7 @@ DELETE Individual Logging Job ... Test title: DELETE Individual Logging Job ... Test objective: The objective is to test the deletion of an individual logging job ... Pre-conditions: Logging Job is already created. - ... Reference: clause 8.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.4.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Logging Job is no more available. @@ -88,7 +88,7 @@ DELETE Individual Logging Job with invalid resource identifier ... Test title: DELETE Individual Logging Job with invalid resource identifier ... Test objective: The objective is to test that the deletion of an individual logging job fails when using an invalid resource identifier ... Pre-conditions: Logging Job is already created. - ... Reference: clause 8.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.4.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot index d96270ac4..38f25ba6a 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualReport.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualReport.robot @@ -12,7 +12,7 @@ POST Individual Log Report - Method not implemented ... Test title: POST Individual Log Report - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new log report. ... Pre-conditions: none - ... Reference: clause 8.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.5.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -24,7 +24,7 @@ Get Individual Log Report ... Test title: Get Individual Log Report ... Test objective: The objective is to test the retrieval of an individual log report and perform a JSON schema validation of the collected report data structure ... Pre-conditions: One or more log reports are set. - ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -37,7 +37,7 @@ Get Individual Log Report (asynchronous) ... Test title: Get Individual Log Report (asynchronous) ... Test objective: The objective is to test the retrieval of an individual log report is ongoing and no log report is available yet. ... Pre-conditions: One or more log reports are set. - ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -49,7 +49,7 @@ Get Individual Log Report with invalid resource endpoint ... Test title: Get Individual Log Report with invalid resource endpoint ... Test objective: The objective is to test that the retrieval of an individual log report fails when using an invalid resource endpoint. ... Pre-conditions: One or more log reports are set. - ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.5.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,7 @@ PUT Individual Log Report - Method not implemented ... Test title: PUT Individual Log Report - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing log report. ... Pre-conditions: none - ... Reference: clause 8.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.5.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -74,7 +74,7 @@ PATCH Individual Log Report - Method not implemented ... Test title: PATCH Individual Log Report - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existinglog report. ... Pre-conditions: none - ... Reference: clause 8.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.5.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -86,7 +86,7 @@ DELETE Individual Log Report - Method not implemented ... Test title: DELETE Individual Log Report - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete an existing log report. ... Pre-conditions: none - ... Reference: clause 8.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.5.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot index cbc6a2153..ce3f231f0 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOLogManagement-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 validation of the returned subscription data structure ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 8.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 8.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 8.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.8.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The 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 8.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.8.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 8.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.8.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 8.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.8.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 8.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.8.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot index 329a1c5f3..94f69aa17 100644 --- a/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot +++ b/SOL009/NFVMANOLogManagement-API/LoggingJobs.robot @@ -12,7 +12,7 @@ POST Create a new logging job ... Test title: POST Create a new logging job ... Test objective: The objective is to create a new logging job, and perform the JSON schema validation of the operation HTTP response. ... Pre-conditions: none - ... Reference: clause 8.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: logging job created @@ -27,7 +27,7 @@ GET information about logging jobs ... Test title: GET information logging jobs ... Test objective: The objective is to retrieve information about logging jobs, and perform the JSON schema validation of the operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ GET Logging jobs - invalid attribute-based filter ... Test title: GET Logging jobs - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of logging jobs fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ GET Logging jobs - invalid attribute selector ... Test title: GET Logging jobs - invalid attribute selector ... Test objective: The objective is to test that the retrieval of logging jobs fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ GET Logging jobs - Bad Request Response too Big ... Test title: GET Logging jobs - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of Logging job fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -79,7 +79,7 @@ GET information about logging jobs with attribute-based filter ... Test title: GET information about logging jobs with attribute-based filter ... Test objective: The objective is to retrieve information about the logging jobs with attribute filters, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -92,7 +92,7 @@ GET information about logging jobs with "all_fields" attribute selector ... Test title: GET information about logging jobs with "all_fields" attribute selector ... Test objective: The objective is to retrieve information about logging jobs with "all_fields" attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -105,7 +105,7 @@ GET information about Logging Jobs with "exclude_default" attribute selector ... Test title: GET information about Logging Jobs with "exclude_default" attribute selector ... Test objective: The objective is to retrieve information about logging jobs with "exclude_default" attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -118,7 +118,7 @@ GET information about Logging Jobs with "fields" attribute selector ... Test title: GET information about Logging Jobs with fields attribute selector ... Test objective: The objective is to retrieve information about Logging Jobs with fields attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -131,7 +131,7 @@ GET information about Logging Jobs with "exclude_fields" attribute selector ... Test title: GET information about Logging Jobs with "exclude_fields" attribute selector ... Test objective: The objective is to retrieve information about the Logging Jobs with "exclude_fields" attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -144,7 +144,7 @@ GET information about Logging Jobs with "fields" and "exclude_default" attribute ... Test title: GET information about Logging Jobs with fields and exclude_default attribute selector ... Test objective: The objective is to retrieve information about Logging Jobs with fields and exclude_default attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -157,7 +157,7 @@ GET information about Logging Jobs with Paged Response ... Test title: GET information about Logging Jobs with Paged Response ... Test objective: The objective is to query information about Logging Jobs to get Paged Response. ... Pre-conditions: At least one logging job is created. - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -170,7 +170,7 @@ GET information about Logging Jobs with malformed authorization token ... Test title: GET information about Logging Jobs with malformed authorization token ... Test objective: The objective is to test that the retrieval of information about Logging Jobs fails when using malformed authorization token. ... Pre-conditions: none - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.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 @@ -182,7 +182,7 @@ GET information about Logging Jobs without authorization token ... Test title: GET information about Logging Jobs without authorization token ... Test objective: The objective is to test that the retrieval of information about Logging Jobs fails when omitting the authorization token. ... Pre-conditions: none - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.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 @@ -194,7 +194,7 @@ GET information about Logging Jobs with expired or revoked authorization token ... Test title: GET information about Logging Jobs with expired or revoked authorization token ... Test objective: The objective is to test that the retrieval of information about Logging Jobs fails when using expired or revoked authorization token. ... Pre-conditions: none - ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 + ... Reference: clause 8.5.3.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.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 @@ -206,7 +206,7 @@ PUT Logging Jobs - Method not implemented ... Test title: PUT Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none - ... Reference: clause 8.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -218,7 +218,7 @@ PATCH Logging Jobs - Method not implemented ... Test title: PATCH Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none - ... Reference: clause 8.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -230,7 +230,7 @@ DELETE Logging Jobs - Method not implemented ... Test title: DELETE Logging Jobs - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none - ... Reference: clause 8.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.3.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none -- GitLab From baddf9da514a24965f46ea9da3248fb6ba1987b2 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 22 Oct 2020 18:48:33 +0200 Subject: [PATCH 066/116] updated references bis --- .../NotificationEndpoint.robot | 2 +- .../Subscriptions.robot | 24 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot b/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot index d4bf4edf0..468b4ad2b 100644 --- a/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot +++ b/SOL009/NFVMANOLogManagement-API/NotificationEndpoint.robot @@ -16,7 +16,7 @@ Log Report Avaliable Notification ... Test title: Log Report Avaliable Notification ... Test objective: The objective is to test the dispatch of Log Report Avaliable Notification when new log report is available 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: none - ... Reference: clause 8.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.9.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot index bc85a54c7..1213076cf 100644 --- a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOLogManagement-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 list to log management notifications 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 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 to log management notifications using attribute-based filter, perform a JSON schema validation of the collected indicators data structure, and verify that the retrieved information matches the issued attribute-based filters ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 log management notifications to get Paged Response. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -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 to log management notifications 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 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 to log management notifications 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 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 to log management notifications fails when using invalid resource endpoint. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -94,7 +94,7 @@ Create new Subscription ... Test title: Create new Subscription ... Test objective: The objective is to test the creation of a new subscription to log management notification and perform a JSON schema and content validation of the returned subscription data structure ... Pre-conditions: - ... Reference: clause 8.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The subscription is successfully set and it matches the issued subscription @@ -110,7 +110,7 @@ Create request for duplicated Subscription not creating duplicated subscriptions ... 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 8.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 @@ -126,7 +126,7 @@ Create request for duplicated Subscription creating duplicated subscriptions ... 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 8.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 @@ -141,7 +141,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 8.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -153,7 +153,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 8.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -165,7 +165,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 8.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Reference: clause 8.5.7.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none -- GitLab From dec21aa05e49aa74f6310fced5439bb4354e19ff Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 26 Oct 2020 11:11:31 +0500 Subject: [PATCH 067/116] added testcases for Subscription filter parameter --- .../IndividualSubscription.robot | 1 + .../NFVMANOLogManagementKeywords.robot | 24 ++++++++++ .../Subscriptions.robot | 44 +++++++++++++++---- .../environment/variables.txt | 3 +- 4 files changed, 63 insertions(+), 9 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot index ce3f231f0..65456e8fd 100644 --- a/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVMANOLogManagement-API/IndividualSubscription.robot @@ -32,6 +32,7 @@ GET Individual Subscription - invalid resource identifier ... Post-Conditions: none GET individual Subscription with invalid resource identifier Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails DELETE Individual Subscription [Documentation] Test ID: 8.3.4.6.3 diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index 6aedfe83c..b49ebc37a 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -418,6 +418,30 @@ Get Subscriptions with invalid attribute-based filters ${output}= Output response Set Suite Variable ${response} ${output} +Get subscriptions with filter "id" + Log Get the list of active subscriptions using a filter "id" + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?id=${subscription_id} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body Subscription Matches the requested attribute-based filter "id" + Should Be Equal As Strings ${response['body']['id']} ${subscription_id} + +Get subscriptions with filter "filter_notificationTypes" + Log Get the list of active subscriptions using a filter "filter.notificationTypes" + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.notificationTypes=${notification_type} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_notificationTypes" + :FOR ${item} IN @{response['body']} + Should Be Equal As Strings ${item['filter']['notificationTypes']} ${notification_type} + END + Send Post Request for Subscription Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Set headers {"Accept": "${ACCEPT_JSON}"} diff --git a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot index 1213076cf..37bf29bc6 100644 --- a/SOL009/NFVMANOLogManagement-API/Subscriptions.robot +++ b/SOL009/NFVMANOLogManagement-API/Subscriptions.robot @@ -63,7 +63,6 @@ GET Subscriptions - invalid attribute-based filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails - GET Subscriptions - Bad Request Response too Big [Documentation] Test ID: 8.3.4.5.5 ... Test title: GET Subscriptions - Bad Request Response too Big @@ -88,12 +87,41 @@ GET Subscriptions - invalid resource endpoint ... Post-Conditions: none Get all Subscriptions Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Subscription with attribute-based filter "id" + [Documentation] Test ID: 8.3.4.5.7 + ... Test title: GET Subscription with attribute-based filter "id" + ... Test objective: The objective is to retrieve the list of active subscriptions with filter "id" + ... Pre-conditions: none + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get subscriptions with filter "id" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LogmSubscription + Check PostCondition HTTP Response Body Subscription Matches the requested attribute-based filter "id" + +Get subscriptions with filter "filter.notificationTypes" + [Documentation] Test ID: 8.3.4.5.8 + ... Test title: GET Subscription with attribute-based filter "filter.notificationTypes" + ... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.notificationTypes" + ... Pre-conditions: none + ... Reference: clause 8.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get subscriptions with filter "filter_notificationTypes" + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is LogmSubscriptions + Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_notificationTypes" Create new Subscription - [Documentation] Test ID 8.3.4.5.7 + [Documentation] Test ID 8.3.4.5.9 ... Test title: Create new Subscription ... Test objective: The objective is to test the creation of a new subscription to log management notification and perform a JSON schema and content validation of the returned subscription data structure - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 8.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -106,7 +134,7 @@ Create new Subscription Create request for duplicated Subscription not creating duplicated subscriptions [Tags] no-duplicated-subs - [Documentation] Test ID 8.3.4.5.8 + [Documentation] Test ID 8.3.4.5.10 ... 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. @@ -122,7 +150,7 @@ Create request for duplicated Subscription not creating duplicated subscriptions Create request for duplicated Subscription creating duplicated subscriptions [Tags] duplicated-subs - [Documentation] Test ID 8.3.4.5.9 + [Documentation] Test ID 8.3.4.5.11 ... 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. @@ -137,7 +165,7 @@ Create request for duplicated Subscription creating duplicated subscriptions Check Postcondition Subscription Is Set PUT Subscriptions - Method not implemented - [Documentation] Test ID 8.3.4.5.10 + [Documentation] Test ID 8.3.4.5.12 ... 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 @@ -149,7 +177,7 @@ PUT Subscriptions - Method not implemented Check HTTP Response Status Code Is 405 PATCH Subscriptions - Method not implemented - [Documentation] Test ID 8.3.4.5.11 + [Documentation] Test ID 8.3.4.5.13 ... 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 @@ -161,7 +189,7 @@ PATCH Subscriptions - Method not implemented Check HTTP Response Status Code Is 405 DELETE Subscriptions - Method not implemented - [Documentation] Test ID 8.3.4.5.12 + [Documentation] Test ID 8.3.4.5.14 ... 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 diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index 4a30d550a..82c8646ff 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -62,4 +62,5 @@ ${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa ${erroneousSubscriptionId} erroneousSubscriptionId ${newSubscriptionId} newSubsciptionId -${objectInstanceId} 4bd7-94b4-6bbb86-9c79aa \ No newline at end of file +${objectInstanceId} 4bd7-94b4-6bbb86-9c79aa +${notification_type} LogReportAvailableNotification \ No newline at end of file -- GitLab From ebe375ea2fefa73f6701358d1bcc3c3ce6b6092d Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 26 Oct 2020 13:54:55 +0500 Subject: [PATCH 068/116] added postcondition --- SOL009/NFVMANOLogManagement-API/CompileLogTask.robot | 8 ++++---- .../NFVMANOLogManagementKeywords.robot | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot index 269d5ea73..140313716 100644 --- a/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot +++ b/SOL009/NFVMANOLogManagement-API/CompileLogTask.robot @@ -12,7 +12,7 @@ Request to compile the logged data into a file - Synchronous mode [Documentation] Test ID: 8.3.4.4.1 ... Test title: Request to compile the logged data into a file - Synchronous mode ... Test objective: The objective is to request to compile the logged data into a file in synchronous mode and perform a JSON schema validation on the returned log report data structure - ... Pre-conditions: none + ... Pre-conditions: logging job is available ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can decide immediately what to respond to a compile request @@ -26,15 +26,15 @@ Request to compile the logged data into a file - Asynchronous mode [Documentation] Test ID: 8.3.4.4.2 ... Test title: Request to compile the logged data into a file - Asynchronous mode ... Test objective: The objective is to request to compile the logged data into a file in asynchronous mode - ... Pre-conditions: none + ... Pre-conditions: logging job is available ... Reference: clause 8.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO can not decide immediately what to respond to a compile request - ... Post-Conditions: none + ... Post-Conditions: log report is available to the API consumer Send Log data Request in Asynchronous mode Check HTTP Response Status Code Is 202 Check HTTP Response Header Contains Location - Wait for compilation success notification + Check postcondition Wait for compilation success notification Request to compile the logged data into a file - Already Processing [Documentation] Test ID: 8.3.4.4.3 diff --git a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot index b49ebc37a..f1ea06205 100644 --- a/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot +++ b/SOL009/NFVMANOLogManagement-API/NFVMANOLogManagementKeywords.robot @@ -322,7 +322,7 @@ Send Log data Request in Asynchronous mode ${body}= Output response Set Suite Variable &{response} ${body} - Wait for compilation success notification + Check postcondition Wait for compilation success notification Wait Until Keyword Succeeds ${retry} ${polling} Get success notification Get Success notification -- GitLab From 428d5d87ac53f9aa14b61db169b110960973f155 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 11 Aug 2020 11:56:58 +0500 Subject: [PATCH 069/116] API added --- ...onfigurationInformationManagement-API.yaml | 33445 ++++++++++++++++ 1 file changed, 33445 insertions(+) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/SOL009-NFVMANOConfigurationInformationManagement-API.yaml diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/SOL009-NFVMANOConfigurationInformationManagement-API.yaml b/SOL009/NFVManoConfigurationAndInformationManagement-API/SOL009-NFVMANOConfigurationInformationManagement-API.yaml new file mode 100644 index 000000000..3fed77a90 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/SOL009-NFVMANOConfigurationInformationManagement-API.yaml @@ -0,0 +1,33445 @@ +openapi: 3.0.2 +info: + version: '1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1' + title: SOL009 - NFV-MANO Configuration and Information Management Interface + description: > + SOL009 - NFV-MANO Configuration and Information Management Interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to and has not been + approved by the ETSI NFV ISG. In case of discrepancies the published ETSI + Group Specification takes precedence. Please report bugs to + https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + license: + name: ETSI Forge copyright notice + url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' + contact: + name: NFV-SOL WG +externalDocs: + description: ETSI GS NFV-SOL 009 V3.3.1 + url: >- + https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf +servers: + - url: 'http://0.0.0.0/nfvmanocim/v1' + description: | + API HTTP Server + - url: 'https://0.0.0.0/nfvmanocim/v1' + description: | + API HTTPS Server +paths: + /api_versions: + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: false + schema: + type: string + - name: Authorization + description: 'The authorization token for the request. Reference: IETF RFC 7235' + in: header + required: false + schema: + type: string + get: + summary: Retrieve API version information + description: > + The GET method reads API version information. This method shall follow + the provisions specified in table 4.6.3.3.3.2-1 for request and response + data structures, and response codes. URI query parameters are not + supported. + responses: + '200': + description: > + 200 OK + + API version information was read successfully. The response body + shall contain 4.4 API version information, as defined in clause + 4.4.1.13. + content: + application/json: + schema: + description: | + This type represents API version information. + type: object + required: + - uriPrefix + - apiVersions + properties: + uriPrefix: + description: > + Specifies the URI prefix for the API, in the following + form {apiRoot}/{apiName}/{apiMajorVersion}/. + type: string + apiVersions: + description: > + Version(s) supported for the API signaled by the uriPrefix + attribute. + type: array + items: + type: object + required: + - version + properties: + version: + description: > + Identifies a supported version. The value of the + version attribute shall be a version identifier as + specified in clause 9.1 (SOL013). + type: string + isDeprecated: + description: > + If such information is available, this attribute + indicates whether use of the version signaled by the + version attribute is deprecated (true) or not + (false). + + A deprecated version is still supported by the API + producer but is recommended not to be used any + longer. When a version is no longer supported, it + does not appear in the response body. + type: boolean + retirementDate: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: The used API version. + schema: + type: string + maximum: 1 + minimum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '413': + description: > + 413 PAYLOAD TOO LARGE + + If the payload body of a request is larger than the amount of data + the API producer is willing or able to process, it shall respond + with this response code, following the provisions in IETF RFC 7231 + for the use of the "Retry-After" HTTP header and for closing the + connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '414': + description: > + 414 URI TOO LONG + + If the request URI of a request is longer than the API producer is + willing or able to process, it shall respond with this response + code. This condition can e.g. be caused by passing long queries in + the request URI of a GET request. The "ProblemDetails" structure may + be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '416': + description: | + 416 Range Not Satisfiable + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '429': + description: > + 429 TOO MANY REQUESTS + + If the API consumer has sent too many requests in a defined period + of time and the API producer is able to detect that condition ("rate + limiting"), the API producer shall respond with this response code, + following the provisions in IETF RFC 6585 [17] for the use of the + "Retry-After" HTTP header. The "ProblemDetails" structure shall be + provided and shall include in the "detail" attribute more + information about the source of the problem. + + The period of time and allowed number of requests are configured + within the API producer by means outside the scope of the present + document. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /mano_entity: + get: + description: > + Retrives information about an NFV-MANO functional entity by reading the + NFV-MANO entity resource. This method shall follow the provisions + specified in the tables 5.5.3.3.2-1 and 5.5.3.3.2-2 for URI query + parameters, request and response data structures, and response + codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when configuration and information about the + NFV-MANO functional entity has been read successfully. The response + body shall contain a representation of the NFV-MANO functional + entity, as defined in clause 5.6.2.2. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents an NFV-MANO functional entity. + type: object + required: + - id + - type + - name + - description + - provider + - softwareVersion + - manoConfigurableParams + - manoApplicationState + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + 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\tThe NFV-MANO functional entity is a VIM.\n" + type: string + enum: + - NFVO + - VNFM + - VIM + name: + description: | + Human-readable name of the NFV-MANO functional entity. + This attribute can be modified with the PATCH method. + type: string + description: + description: > + Human-readable description of the NFV-MANO functional + entity. + + This attribute can be modified with the PATCH method. + type: string + provider: + description: > + Information about the provider of the NFV-MANO functional + entity. It typically includes the name of the provider. + type: string + softwareVersion: + description: > + The version of the software of the NFV-MANO functional + entity. $ref: + "../components/SOL009_schemas.yaml#/components/schemas/Version" + manoEntityComponents: + description: "The deployed NFV-MANO functional entity components which realize the NFV-MANO functional entity. \nNOTE:\tIt is optional for the API producer to support the \"manoEntityComponents\" attribute.\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. + type: object + 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.. + 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. + 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.. + type: string + required: + - id + manoServices: + description: > + Information about the NFV-MANO services provided by the + NFV-MANO functional entity. + type: array + items: + description: > + This type represents information about an NFV-MANO + service provided by the NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: > + Human-readable name of the NFV-MANO service. + + This attribute can be modified with the PATCH + method. + type: string + description: + description: > + Human-readable description of the NFV-MANO service. + + This attribute can be modified with the PATCH + method. + 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. \nNOTE:\tA cardinality greater than one supports having different interface versions or apiEndpoints to be used for accessing the same instance of a NFV-MANO service.\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.. + type: string + minItems: 1 + _links: + description: | + Links to resources related to this resource. + 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. + type: array + items: + description: > + This type represents a link to a resource + using an absolute URI. + type: object + required: + - href + properties: + href: + description: > + String formatted according to IETF RFC + 3986. + type: string + minItems: 1 + required: + - manoServiceInterfaces + required: + - id + - name + - description + - manoServiceInterfaceIds + - _links + manoConfigurableParams: + description: > + # Warning: No definition found in the document + ManoConfigurableParams + manoApplicationState: + description: > + Information and current values of the NFV-MANO functional + entity’s application state. + 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. + type: object + properties: + maxOnboardedNsdNum: + description: > + Maximum number of NSDs that can be on-boarded on the + NFVO. + + NOTE: If this attribute is not present, the value of + this parameter is undefined. + type: integer + maxOnboardedVnfPkgNum: + description: > + Maximum number of VNF Packages that can be on-boarded + on the NFVO. + + NOTE: If this attribute is not present, the value of + this parameter is undefined. + type: integer + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + supportedNsdFormats: + description: | + Supported NSD data formats. + type: object + properties: + nsdFormat: + description: | + Name of the NSD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - nsdFormat + - standardVersion + required: + - supportedVnfdFormats + - supportedNsdFormats + 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. + type: object + properties: + resoruceMgmtModeSupport: + description: | + The supported resource management modes of the VNFM. + Permitted values: + - DIRECT: The VNFM supports direct mode only. + - INDIRECT: The VNFM supports indirect mode only. + - BOTH: The VNFM supports both direct and indirect mode. + 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). + type: array + items: + type: string + minItems: 1 + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: array + items: + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + minItems: 1 + required: + - resoruceMgmtModeSupport + - managedVnfInstanceInfos + - supportedVnfdFormats + 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. + type: object + _links: + description: | + Links to resources related to this resource. + type: object + required: + - self + - manoServiceInterfaces + - peerEntities + - changeState + - changeStateOpOccs + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + manoServiceInterfaces: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + peerEntities: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + changeState: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + changeStateOpOccs: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + patch: + description: > + Modifies the NFV-MANO entity resource. Changes to the various + configuration and information attributes are applied to the NFV-MANO + functional entity, and are reflected in the representation of this + resource. This method shall follow the provisions specified in the + tables 5.5.3.3.4-1 and 5.5.3.3.4-2 for URI query parameters, request + and response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: > + Parameters for the NFV-MANO configuration and information + modification, as defined in clause 5.6.2.3. The Content-Type header + shall be set to "application/merge-patch+json" according to IETF RFC + 7396. + content: + application/merge-patch+json: + schema: + description: > + This type represents attribute modifications for configuration + parameters of an NFV-MANO functional entity. + type: object + properties: + name: + description: | + New value of the "name" attribute in "ManoEntity". + type: string + description: + description: | + New value of the "description" attribute in "ManoEntity". + type: string + clockSyncs: + description: > + New content of certain entries in the "clockSyncs" attribute + array in the "ManoEntityConfigurableParams", as defined + below this table. + type: array + items: + description: > + This type represents parameters for connecting to an NTP + server. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. + Shall be present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 address, + string that consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + clockSyncsDeleteIds: + description: > + List of identifiers entries to be deleted from the + "clockSyncs" attribute array in the + "ManoEntityConfigurableParams", as defined below this + table. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + defaultLogCompileBySizeValue: + description: | + Unsigned integer + type: number + defaultLogCompileByTimerValue: + description: | + Unsigned integer + type: number + manoServiceModifications: + description: > + New content of certain entries in the "manoServices" + attribute array in the "ManoEntity", as defined below this + table. + type: array + items: + type: object + 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.. + type: string + name: + description: "New value for the \"name\" attribute in the \"ManoService\". \nNOTE:\tAt least one of these attributes shall be provided if requesting a modification of the NFV-MANO service identified by \"id\".\n" + type: string + description: + description: "New value for the \"description\" attribute in the \"ManoService\".\nNOTE:\tAt least one of these attributes shall be provided if requesting a modification of the NFV-MANO service identified by \"id\".\n" + type: string + required: + - id + required: true + responses: + '200': + description: > + 200 OK + + Shall be returned when the modification of configuration on the + NFV-MANO functional entity has been accepted and completed. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents attribute modifications that were + performed on the "NFV-MANO entity" resource of the producer + NFV-MANO functional entity. The attributes that can be + included consist of those requested to be modified explicitly + in the "ManoConfigModificationRequest" data structure. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the + "name" attribute in "ManoEntity", as defined in clause + 5.6.2.3 + type: string + description: + description: > + If present, this attribute signals modifications of the + "description" attribute in "ManoEntity", as defined in + clause 5.6.2.3. + type: string + clockSyncs: + description: > + If present, this attribute signals modifications of the + "clockSyncs" attribute in "ManoEntityConfigurableParams", + as defined in clause 5.6.2.3. + type: array + items: + description: > + This type represents parameters for connecting to an NTP + server. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock + synchronization. Shall be present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case + of an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero + to four hexadecimal digits, separated by colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + clockSyncsDeleteIds: + description: > + If present, this attribute signals modifications of + certain entries in "clockSyncs" attribute in + "ManoEntityConfigurableParams", as defined in clause + 5.6.2.3. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + defaultLogCompileBySizeValue: + description: | + Unsigned integer + type: number + defaultLogCompileByTimerValue: + description: | + Unsigned integer + type: number + manoServiceModifications: + description: > + If present, this attribute signals modifications of the + "manoServices" attribute array in the "ManoEntity", as + defined in clause 5.6.2.3. + type: array + items: + type: object + 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.. + type: string + name: + description: > + If present, this attribute signals modification of + the "name" attribute in the "ManoService". + type: string + description: + description: > + If present, this attribute signals modification of + the "description" attribute in the "ManoService". + type: string + required: + - id + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '409': + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the + "NFV-MANO entity" resource. + + Typically, this is due to the fact that another configuration and + information modification is ongoing. + + The response body shall contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '412': + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in + an HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /mano_entity/change_state: + post: + description: > + Requests to change the state of the NFV-MANO functional entity + application. + + This method shall follow the provisions specified in the tables + 5.5.7.3.1-1 and 5.5.7.3.1-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: > + Parameters for the change state operation, as defined in clause + 5.6.2.8. + content: + application/json: + schema: + description: > + This type represents request parameters for changing the state + of a managed entity. + type: object + properties: + operationalStateChange: + description: "A change of operational state. Shall be present if the state change request refers to the operational state. NOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + operationalStateAction: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + stopType: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions:\n - GRACEFUL\tTo stop the managed entity immediately after accepting the request.\n - FORCEFUL\tTo stop the managed entity attempting to gracefully discharge the entity from service.\n" + type: string + enum: + - GRACEFUL + - FORCEFUL + gracefulStopTimeout: + description: "The time internal (in seconds) to wait for the entity to be taken out of service during graceful stop. \nNOTE:\tThe \"stopType\" shall only be provided when the \"operationalStateAction\" attribute is equal to \"STOP\" or \"RESTART\". The \"gracefulStopTimeout\" shall be absent when the \"stopType\" attribute is equal to \"FORCEFUL\", and may be provided otherwise.\n" + type: integer + required: + - operationalStateAction + administrativeStateChange: + description: "A change of administrative state. Shall be present if the state change request refers to the administrative state. \nNOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + administrativeStateAction: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + required: + - administrativeStateAction + required: true + responses: + '202': + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + + The response body shall be empty. + + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "Individual change state + operation occurrence" resource corresponding to the operation. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state + operation occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '409': + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the + resource. + + Typically, this is due to the fact that the resource is in an + incompatible state, or that another change state operation is + ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute shall convey more information about the + error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /mano_entity/mano_interfaces: + get: + description: > + Queries information about multiple NFV-MANO service interfaces of the + NFV-MANO functional entity. This method shall follow the provisions + specified in the tables 5.5.10.3.2-1 and 5.5.10.3.2-2 for URI query + parameters, request and response data structures, and response codes. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of + ETSI GS NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this + parameter as part of the URI query string. The API consumer may + supply this parameter. + + All attribute names that appear in the ManoServiceInterface and in + data types referenced from it shall be supported by the NFV-MANO + functional entity in the expression. + in: query + required: false + schema: + type: string + - name: all_fields + description: > + Include all complex attributes in the response. See clause 5.3 of + ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support + this parameter. + in: query + required: false + schema: + type: string + - name: fields + description: > + Complex attributes to be included into the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_fields + description: > + Complex attributes to be excluded from the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the + ManoServiceInterface structure in the response body if this + parameter is provided, or none of the parameters "all_fields," + "fields", "exclude_fields", "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about zero or more NFV-MANO + service interfaces has been queried successfully. + + The response body shall contain in an array the representations of + zero or more NFV-MANO service interfaces, as defined in clause + 5.6.2.11. + + If the “filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or + "exclude_default" URI parameters was supplied in the request, the + data in the response body shall have been transformed according to + the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL + 013, respectively. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: > + This type represents an individual NFV-MANO service + interface produced by an NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: > + Human-readable name of the NFV-MANO functional entity + interface. + + This attribute can be modified with the PATCH method. + type: string + type: + description: > + Type of the NFV-MANO service interface produced by the + NFV-MANO functional entity. Valid values are defined in + clause 5.6.4.3. + type: string + standardVersion: + description: | + A version. + type: string + providerSpecificApiVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + type: string + apiEndpoint: + description: | + Exposed API endpoint of the interface. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - apiUri + maxConcurrentIntOpNumber: + description: "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + supportedOperations: + description: > + Information about supported operations of this + interface. + type: array + items: + type: object + properties: + operationName: + description: | + Name of the operation supported on the interface. + type: string + maxConcurrentOpNumber: + description: "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + required: + - operationName + minItems: 1 + interfaceState: + description: | + State of the NFV-MANO service interface. + properties: + operationalState: + description: "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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" + type: string + enum: + - STARTED + - STOPPED + - STOPPING + - STARTING + 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 + required: + - operationalState + - administrativeState + - usageState + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO + functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the + API producer. + + The support of authorization methods for the API + producer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing + the SSL or TLS negotiation with the + authorization server. Valid values of cipher + suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of + TLS tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing + the SSL or TLS negotiation with the API client. + Valid values of cipher suites are defined in + IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + required: + - id + - name + - type + - standardVersion + - providerSpecificApiVersion + - apiVersion + - apiEndpoint + - supportedOperations + - interfaceState + '400': + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/mano_entity/mano_interfaces/{manoServiceInterfaceId}': + parameters: + - name: manoServiceInterfaceId + in: path + description: Identifier of the MANO service interface. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: > + retrieves information about an NFV-MANO service interface of the + producer NFV-MANO functional entity by reading an "Individual NFV-MANO + service interface" resource. + + This method shall follow the provisions specified in the tables + 5.5.11.3.2-1 and 5.5.11.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about an individual NFV-MANO + service interface has been read successfully. + + The response body shall contain a representation of the NFV-MANO + service interface, as defined in clause 5.6.2.11. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents an individual NFV-MANO service interface + produced by an NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: > + Human-readable name of the NFV-MANO functional entity + interface. + + This attribute can be modified with the PATCH method. + type: string + type: + description: > + Type of the NFV-MANO service interface produced by the + NFV-MANO functional entity. Valid values are defined in + clause 5.6.4.3. + type: string + standardVersion: + description: | + A version. + type: string + providerSpecificApiVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + type: string + apiEndpoint: + description: | + Exposed API endpoint of the interface. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - apiUri + maxConcurrentIntOpNumber: + description: "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + supportedOperations: + description: | + Information about supported operations of this interface. + type: array + items: + type: object + properties: + operationName: + description: | + Name of the operation supported on the interface. + type: string + maxConcurrentOpNumber: + description: "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + required: + - operationName + minItems: 1 + interfaceState: + description: | + State of the NFV-MANO service interface. + properties: + operationalState: + description: "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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" + type: string + enum: + - STARTED + - STOPPED + - STOPPING + - STARTING + 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 + required: + - operationalState + - administrativeState + - usageState + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO + functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the + API producer. + + The support of authorization methods for the API + producer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the authorization + server. Valid values of cipher suites are defined + in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of + TLS tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the API client. Valid + values of cipher suites are defined in IETF RFC + 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + required: + - id + - name + - type + - standardVersion + - providerSpecificApiVersion + - apiVersion + - apiEndpoint + - supportedOperations + - interfaceState + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + patch: + description: > + Modifies an "Individual NFV-MANO service interface" resource. + + Changes to the configurable parameters of the corresponding NFV-MANO + service interface are applied to the information managed by the + producer NFV-MANO functional entity and reflected in the representation + of this resource. + + This method shall follow the provisions specified in the tables + 5.5.11.3.4-1 and 5.5.11.3.4-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: > + Parameters for the modification of configuration parameters of the + NFV-MANO service interface, as defined in clause 5.6.2.12. + + The Content-Type header shall be set to "application/merge-patch+json" + according to IETF RFC 7396. + content: + application/merge-patch+json: + schema: + description: > + This type represents attribute modifications for configuration + parameters of an NFV-MANO service interface of the producer + NFV-MANO functional entity. + type: object + properties: + name: + description: "New value of the \"name\" attribute in \"ManoServiceInterface\". \nNOTE:\tChanging the name does not change the corresponding standardized API name in the resource URI (refer to \"{apiName}\" defined in clause 4.1 of ETSI GS NFV-SOL 013).\n" + type: string + apiRoot: + description: | + String formatted according to IETF RFC 3986. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO + functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API + producer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the authorization + server. Valid values of cipher suites are defined + in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS + tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the API client. Valid + values of cipher suites are defined in IETF RFC + 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + required: true + responses: + '200': + description: > + 200 OK + + Shall be returned when the request has been accepted and completed. + + The response body shall contain a representation of the attribute + modifications for the "Individual NFV-MANO service interface" + resource, as defined in clause 5.6.2.13. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents attribute modifications that were + performed on an Individual NFV-MANO service interface" + resource. The attributes that can be included consist of + those requested to be modified explicitly in the + "ManoServiceInterfaceModificationRequest" data structure. If + applicable, additional attributes of the + "ManoServiceInterface" data structure that were modified + implicitly shall also be provided. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the + "name" attribute in "ManoServiceInterface", as defined in + clause 5.6.2.11. + type: string + apiRoot: + description: | + String formatted according to IETF RFC 3986. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO + functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the + API producer. + + The support of authorization methods for the API + producer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the authorization + server. Valid values of cipher suites are defined + in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of + TLS tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the API client. Valid + values of cipher suites are defined in IETF RFC + 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '409': + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the + "Individual NFV-MANO service interface" resource. + + Typically, this is due to the fact that another operation is + ongoing. + + The response body shall contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '412': + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in + an HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/mano_entity/mano_interfaces/{manoServiceInterfaceId}/change_state': + parameters: + - name: manoServiceInterfaceId + in: path + description: Identifier of the MANO service interface. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + post: + description: > + Requests to change the state of the NFV-MANO service interface produced + by the NFV-MANO functional entity. + + This method shall follow the provisions specified in the tables + 5.5.12.3.1-1 and 5.5.12.3.1-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: > + Parameters for the change state operation, as defined in clause + 5.6.2.8. + content: + application/json: + schema: + description: > + This type represents request parameters for changing the state + of a managed entity. + type: object + properties: + operationalStateChange: + description: "A change of operational state. Shall be present if the state change request refers to the operational state. NOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + operationalStateAction: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + stopType: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions:\n - GRACEFUL\tTo stop the managed entity immediately after accepting the request.\n - FORCEFUL\tTo stop the managed entity attempting to gracefully discharge the entity from service.\n" + type: string + enum: + - GRACEFUL + - FORCEFUL + gracefulStopTimeout: + description: "The time internal (in seconds) to wait for the entity to be taken out of service during graceful stop. \nNOTE:\tThe \"stopType\" shall only be provided when the \"operationalStateAction\" attribute is equal to \"STOP\" or \"RESTART\". The \"gracefulStopTimeout\" shall be absent when the \"stopType\" attribute is equal to \"FORCEFUL\", and may be provided otherwise.\n" + type: integer + required: + - operationalStateAction + administrativeStateChange: + description: "A change of administrative state. Shall be present if the state change request refers to the administrative state. \nNOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + administrativeStateAction: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + required: + - administrativeStateAction + required: true + responses: + '202': + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for + processing. + + The response body shall be empty. + + The HTTP response shall include a “Location†HTTP header that + contains the URI of the newly-created "Individual change state + operation occurrence" resource corresponding to the operation. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state + operation occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '409': + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the + resource. + + Typically, this is due to the fact that the resource is in an + incompatible state, or that another change state operation is + ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute shall convey more information about the + error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /subscriptions: + post: + description: > + Creates a new subscription. + + This method shall follow the provisions specified in the tables + 5.5.4.3.1-1 and 5.5.4.3.1-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: > + Details of the subscription to be created, as defined in clause + 5.6.2.5-1. + content: + application/json: + schema: + description: > + This type represents a subscription request related to + notifications about NFV-MANO configuration and information + management changes. + type: object + properties: + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and information + management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their associated + managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference to + NFV-MANO services in a filter. They should not be + used together in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed in + this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed in + this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization + which the API consumer is willing to accept when + receiving a notification. Permitted values: * BASIC: In + every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to + the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the + contained information has not been provisioned out of + band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out + of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType + is "OAUTH2_CLIENT_CREDENTIALS" and the contained + information has not been provisioned out of band. Shall + be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + clientPassword: + description: > + Client password to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been + provisioned out of band. The clientId and + clientPassword passed in a subscription shall not be + the same as the clientId and clientPassword that are + used to obtain authorization for API requests. + Client credentials may differ between subscriptions. + The value of clientPassword should be generated by a + random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - callbackUri + required: true + responses: + '201': + description: > + 201 CREATED + + Shall be returned when the subscription has been created + successfully. + + The response body shall contain a representation of the created + "Individual subscription" resource. + + The HTTP response shall include a "Location" HTTP header that + points to the created "Individual subscription" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual subscription" + resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications + about NFV-MANO configuration and information management + changes + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and + information management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference + to NFV-MANO services in a filter. They should not + be used together in the same filter instance, but + one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed + in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed + in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links to resources related to this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - callbackUri + - _links + '303': + description: > + 303 SEE OTHER + + SShall be returned when a subscription with the same callbackURI + and the same filter already exists and the policy of NFV-MANO + functional entity is to not create redundant subscriptions. + + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the existing "Individual subscription" + resource. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual subscription" + resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + get: + description: > + queries the list of active subscriptions of the API consumer that + invokes the method. It can be used, e.g., for resynchronization after + error situations. + + This method shall follow the provisions specified in the tables + 5.5.4.3.2-1 and 5.5.4.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of + ETSI GS NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this + parameter as part of the URI query string. The API consumer may + supply this parameter. + + All attribute names that appear in the CimSubscription and in data + types referenced from it shall be supported by the NFV-MANO + functional entity in the expression. + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when the list of subscriptions has been queried + successfully. + + The response body shall contain in an array the representations of + all active subscriptions of the functional block that invokes the + method, i.e., zero or more representations of NFV-MANO + configuration and information management subscriptions as defined + in clause 5.6.2.6. + + If the "filter" URI parameter was supplied in the request, the data + in the response body shall have been transformed according to the + rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: > + This type represents a subscription related to notifications + about NFV-MANO configuration and information management + changes + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and + information management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being + globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to + reference to NFV-MANO services in a filter. They + should not be used together in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity + produced interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity + produced interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives + to reference to NFV-MANO functional entity + consumed interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives + to reference to NFV-MANO functional entity + consumed interfaces in a filter. They should + not be used both in the same filter instance, + but one alternative should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links to resources related to this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - callbackUri + - _links + '400': + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/subscriptions/{subscriptionId}': + parameters: + - name: subscriptionId + in: path + description: Identifier of the subscription + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: > + Retrieves information about a subscription by reading an "Individual + subscription" resource. + + This method shall follow the provisions specified in the tables + 5.5.5.3.2-1 and 5.5.5.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about an individual subscription + has been read successfully. + + The response body shall contain a representation of the "Individual + subscription" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications + about NFV-MANO configuration and information management + changes + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and + information management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their + associated managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an + NFV-MANO service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference + to NFV-MANO services in a filter. They should not + be used together in the same filter instance, but + one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed + in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + description: > + An identifier with the intention of being + globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed + in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used + both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links to resources related to this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - callbackUri + - _links + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: > + Terminates an individual subscription. + + This method shall follow the provisions specified in the tables + 5.5.5.3.5-1 and 5.5.5.3.5-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: > + 204 NO CONTENT + + Shall be returned when the "Individual subscription" resource has + been deleted successfully. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /change_state_ops: + get: + description: > + The API consumer can use the GET method to query status information + about multiple change state operation occurrences. + + This method shall follow the provisions specified in the tables + 5.5.8.3.2-1 and 5.5.8.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of + ETSI GS NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this + parameter as part of the URI query string. The API consumer may + supply this parameter. + + All attribute names that appear in the ChangeStateOpOcc and in data + types referenced from it shall be supported by the NFV-MANO + functional entity in the expression. + in: query + required: false + schema: + type: string + - name: all_fields + description: > + Include all complex attributes in the response. See clause 5.3 of + ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support + this parameter. + in: query + required: false + schema: + type: string + - name: fields + description: > + Complex attributes to be included into the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_fields + description: > + Complex attributes to be excluded from the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the + ChangeStateOpOcc structure in the response body if this parameter + is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when status information for zero or more "change + state operation occurrences" has been queried successfully. + + The response body shall contain in an array the status information + about zero or more "Individual change state operation occurrences", + as defined in clause 5.6.2.9. + + If the “filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or + "exclude_default" URI parameters was supplied in the request, the + data in the response body shall have been transformed according to + the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL + 013, respectively. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + This type represents a Change state operation occurrence. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + operationState: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n" + type: string + enum: + - PROCESSING + - COMPLETED + - FAILED + stateEnteredTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + managedObjectRef: + description: > + This type represents the identifier to reference a + managed object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + changeOperationalStateRequest: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + changeAdministrativeStateRequest: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + operationParams: + description: > + Input parameters of the change state operation. This + attribute shall be formatted according to the request + data type of the related change state operation. + + The following mapping between operationType and the data + type of this attribute shall apply: + - CHANGE_STATE: ChangeStateRequest + + This attribute shall be present if this data type is + returned in a response to reading an individual + resource, and may be present according to the chosen + attribute selector parameter if this data type is + returned in a response to a query of a container + resource. + required: + - id + - operationState + - stateEnteredTime + - startTime + - managedObjectRef + '400': + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/change_state_ops/{changeStateOpOccId}': + parameters: + - name: changeStateOpOccId + in: path + description: Identifier of the change state operation occurrence + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: > + The API consumer can use the GET method to retrieve status information + about a change state operation occurrence by reading an "Individual + change state operation occurrence" resource. + + This method shall follow the provisions specified in the tables + 5.5.9.3.2-1 and 5.5.9.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about an "Individual change + state operation occurrence" resource has been read successfully. + + The response body shall contain status information about a change + state operation occurrence, as defined in clause 5.6.2.9. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a Change state operation occurrence. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + operationState: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n" + type: string + enum: + - PROCESSING + - COMPLETED + - FAILED + stateEnteredTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + startTime: + description: > + Date-time stamp. Representation: String formatted + according to IETF RFC 3339. + type: string + format: date-time + managedObjectRef: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted + values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + changeOperationalStateRequest: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + changeAdministrativeStateRequest: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + operationParams: + description: > + Input parameters of the change state operation. This + attribute shall be formatted according to the request + data type of the related change state operation. + + The following mapping between operationType and the data + type of this attribute shall apply: + - CHANGE_STATE: ChangeStateRequest + + This attribute shall be present if this data type is + returned in a response to reading an individual resource, + and may be present according to the chosen attribute + selector parameter if this data type is returned in a + response to a query of a container resource. + required: + - id + - operationState + - stateEnteredTime + - startTime + - managedObjectRef + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + /peer_entities: + post: + description: > + 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. + + This method shall follow the provisions specified in the tables + 5.5.13.3.1-1 and 5.5.13.3.1-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: | + The peer entity creation parameters, as defined in clause 5.6.2.14. + content: + application/json: + schema: + description: > + This type represents request parameters for the creation of a + new peer entity resource. + type: object + properties: + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by + the API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, + as defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: + Using access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + peerEntityState: + description: | + Current values of the state of the peer functional entity. + 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 + required: + - peerEntityId + - name + - type + required: true + responses: + '201': + description: > + 201 CREATED + + Shall be returned when a new "Individual peer entity" resource has + been created successfully. + + The response body shall contain a representation of the created + resource with regards to a peer entity, as defined in clause + 5.6.2.15. + + The HTTP response shall include a “Location†HTTP header that + points to the created "Individual peer entity" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual peer entity" + resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: | + This type represents an individual peer entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + This attribute can be modified with the PATCH method. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + + This attribute can be modified with the PATCH method. + type: array + items: + description: > + This type represents an interface consumed by the + producer NFV MANO functional entity from another peer + functional entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by + the API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI + GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS + tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the + OAuth 2.0 specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as + defined in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + 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. + 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 + required: + - id + - peerEntityId + - name + - type + - peerEntityState + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + get: + description: > + Queries information and configuration in the producer NFV-MANO + functional entity with regards to multiple peer entities. + + This method shall follow the provisions specified in the tables + 5.5.13.3.2-1 and 5.5.13.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of + ETSI GS NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this + parameter as part of the URI query string. The API consumer may + supply this parameter. + + All attribute names that appear in the PeerEntity and in data types + referenced from it shall be supported by the NFV-MANO functional + entity in the expression. + in: query + required: false + schema: + type: string + - name: all_fields + description: > + Include all complex attributes in the response. See clause 5.3 of + ETSI GS NFV-SOL 013. The NFV-MANO functional entity shall support + this parameter. + in: query + required: false + schema: + type: string + - name: fields + description: > + Complex attributes to be included into the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_fields + description: > + Complex attributes to be excluded from the response. See clause 5.3 + of ETSI GS NFV-SOL 013 for details. The NFV-MANO functional entity + should support this parameter. + in: query + required: false + schema: + type: string + - name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the PeerEntity + structure in the response body if this parameter is provided, or + none of the parameters "all_fields," "fields", "exclude_fields", + "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + - name: nextpage_opaque_marker + description: > + Marker to obtain the next page of a paged response. Shall be + supported by the NFV-MANO functional entity if the entity supports + alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS + NFV-SOL 013 for this resource. + in: query + required: false + schema: + type: string + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about zero or more peer entities + has been queried successfully. + + The response body shall contain in an array the resource + representations of zero or more peer entities, as defined in clause + 5.6.2.15. + + If the “filter" URI parameter or one of the "all_fields", "fields" + (if supported), "exclude_fields" (if supported) or + "exclude_default" URI parameters was supplied in the request, the + data in the response body shall have been transformed according to + the rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL + 013, respectively. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this + resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + This type represents an individual peer entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + peerEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + This attribute can be modified with the PATCH method. + 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. - 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 + - EM + - OSS + description: + description: > + Human-readable description of the peer functional + entity. + + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + + This attribute can be modified with the PATCH method. + type: array + items: + description: > + This type represents an interface consumed by the + producer NFV MANO functional entity from another peer + functional entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used + by the API consumer accessing the API. + + The support of authorization methods for the + API consumer is specified in clause 8.3.6 of + ETSI GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS + tunnel, as defined by TLS 1.2 in IETF RFC + 5246. - OAUTH2: Using access token, as defined + by the OAuth 2.0 specification in IETF RFC + 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as + defined in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + 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. + 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 + required: + - id + - peerEntityId + - name + - type + - peerEntityState + '400': + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '/peer_entities/{peerEntityId}': + parameters: + - name: peerEntityId + in: path + description: Identifier of the peer entity + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + get: + description: > + 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. + + This method shall follow the provisions specified in the tables + 5.5.14.3.2-1 and 5.5.14.3.2-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '200': + description: > + 200 OK + + Shall be returned when information about an individual peer + functional entity has been read successfully. + + The response body shall contain a resource representation of the + peer functional entity, as defined in clause 5.6.2.15. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents an individual peer entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + This attribute can be modified with the PATCH method. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + + This attribute can be modified with the PATCH method. + type: array + items: + description: > + This type represents an interface consumed by the + producer NFV MANO functional entity from another peer + functional entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by + the API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI + GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS + tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the + OAuth 2.0 specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as + defined in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + 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. + 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 + required: + - id + - peerEntityId + - name + - type + - peerEntityState + '400': + description: > + 400 BAD REQUEST + + 400 code can be returned in the following specified cases, the + specific cause has to be proper specified in the "ProblemDetails" + structure to be returned. + + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or the payload body + contains a syntactically incorrect data structure), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + If the response to a GET request which queries a container resource + would be so big that the performance of the API producer is + adversely affected, and the API producer does not support paging for + the affected resource, it shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include in + the "detail" attribute more information about the source of the + problem. + + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall be + returned in the WWW Authenticate HTTP header, as defined in IETF RFC + 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + + The use of this HTTP error response code described above is + applicable to the use of the OAuth 2.0 for the authorization of API + requests and notifications, as defined in clauses 4.5.3.3 and + 4.5.3.4. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + patch: + description: > + 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. + + Changes to the configurable parameters of the corresponding peer entity + are applied to the information managed by the producer NFV-MANO + functional entity and reflected in the representation of this resource. + + This method shall follow the provisions specified in the tables + 5.5.14.3.4-1 and 5.5.14.3.4-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + requestBody: + description: > + Parameters for the modification of configuration parameters of the + peer functional entity, as defined in clause 5.6.2.16 + + The Content-Type header shall be set to + "application/merge-patch+json" according to IETF RFC 7396. + content: + application/merge-patch+json: + schema: + description: > + This type represents attribute modifications for configuration + parameters of a peer entity. + type: object + properties: + name: + description: | + New value of the "name" attribute in "PeerEntity". + type: string + description: + description: > + New value of the "description" attribute in "PeerEntity", or + "null" to remove the attribute. + type: string + consumedManoInterfaces: + description: "New content of certain entries in the \"consumedManoInterfaces\" attribute array in the \"PeerEntity\", as defined below this table. \nNOTE:\tDue to the security sensitive information contained within the attribute (refer to \"securityInfo\" within the \"ConsumedManoInterfaceInfo\"), based on access control policies, the API consumer might have read only, write only, read/write, or no access at all to the attribute’s value. In case the API consumer is not allowed to modify the value of the security sensitive attribute, and the modification request includes new attribute values, the whole modification request shall be rejected, and proper error information returned.\n" + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by + the API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, + as defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: + Using access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + consumedManoInterfaceDeleteIds: + description: > + List of identifiers entries to be deleted from the + "consumedManoInterfaces" attribute array in the " + PeerEntity ", as defined below this table. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + 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: true + responses: + '200': + description: > + 200 OK + + Shall be returned when the request has been accepted and completed. + + The response body shall contain a representation of the attribute + modifications for the "Individual peer entity" resource, as defined + in clause 5.6.2.17. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents attribute modifications that were + performed on an "Individual peer entity" resource. The + attributes that can be included consist of those requested to + be modified explicitly in the + "PeerEntityConfigModificationRequest" data structure. If + applicable, additional attributes of the "PeerEntity" data + structure that were modified implicitly shall also be + provided. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the + "name" attribute in "PeerEntity", as defined in clause + 5.6.2.15. + type: string + description: + description: > + If present, this attribute signals modifications of the + "description" attribute in "PeerEntity", as defined in + clause 5.6.2.15. + type: string + consumedManoInterfaces: + description: "If present, this attribute signals modifications of certain entries in \"consumedManoInterfaces\" attribute in \"PeerEntity\", as defined in clause 5.6.2.15. \nNOTE:\tDue to the security sensitive information contained within the attribute (refer to \"securityInfo\" within the \"ConsumedManoInterfaceInfo\"), based on access control policies, the API consumer might have read only, write only, read/write, or no access at all to the attribute’s value. In case the API consumer is not allowed to read the value of the security sensitive attribute, the attribute shall be omitted when the information is to be provided in a response message.\n" + type: array + items: + description: > + This type represents an interface consumed by the + producer NFV MANO functional entity from another peer + functional entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by + the API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI + GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS + tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the + OAuth 2.0 specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as + defined in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + consumedManoInterfaceDeleteIds: + description: > + If present, this attribute signals the deletions of + certain entries in the "consumedManoInterfaces" attribute + in "PeerEntity", as defined in clause 5.6.2.15. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + 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 + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '409': + description: > + 409 CONFLICT. + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the + "Individual peer entity" resource. + + Typically, this is due to the fact that another operation is + ongoing. + + The response body shall contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '412': + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in + an HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + delete: + description: > + Ddeletes an individual peer entity resource. By deleting such a + resource in the producer NFV-MANO functional entity representing a peer + NFV-MANO entity, the configuration and information with regards to such + peer entity is deleted. Consequently, the peering relationship between + the producer NFV-MANO functional entity and the peer entity is + terminated, i.e., the producer NFV-MANO functional entity does not have + the necessary information to communicate/interact with the peer entity. + + This method shall follow the provisions specified in the tables + 5.5.14.3.5-1 and 5.5.14.3.5-2 for URI query parameters, request and + response data structures, and response codes. + parameters: + - name: Version + description: | + Version of the API requested to use when responding to this request. + in: header + required: true + schema: + type: string + - name: Accept + description: > + Content-Types that are acceptable for the response. Reference: IETF + RFC 7231. + in: header + required: true + schema: + type: string + - name: Authorization + description: | + The authorization token for the request. Reference: IETF RFC 7235. + in: header + required: false + schema: + type: string + responses: + '204': + description: > + 204 NO CONTENT + + Shall be returned when the "Individual peer entity" resource has + been deleted successfully. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + '401': + description: > + 401 UNAUTHORIZED + + If the request contains no access token even though one is required, + or if the request contains an authorization token that is invalid + (e.g. expired or revoked), the API producer should respond with this + response. The details of the error shall be returned in the + WWW-Authenticate HTTP header, as defined in IETF RFC 6750 and IETF + RFC 7235. The ProblemDetails structure may be provided. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '403': + description: > + 403 FORBIDDEN + + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. It + should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '404': + description: > + 404 NOT FOUND + + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request or is not + willing to disclose that one exists, it shall respond with this + response code. The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source of + the problem, e.g. a wrong resource URI variable. + + This response code is not appropriate in case the resource addressed + by the URI is a container resource which is designed to contain + child resources, but does not contain any child resource at the time + the request is received. For a GET request to an existing empty + container resource, a typical response contains a 200 OK response + code and a payload body with an empty array. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '405': + description: > + 405 METHOD NOT ALLOWED + + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '406': + description: > + 406 NOT ACCEPTABLE + + If the "Accept" HTTP header does not contain at least one name of a + content type that is acceptable to the API producer, the API + producer shall respond with this response code. The "ProblemDetails" + structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '409': + description: > + 409 CONFLICT. + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the + "Individual peer entity" resource. + + Typically, this is due to the fact that another operation is + ongoing. + + The response body shall contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '412': + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in + an HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '422': + description: > + 422 UNPROCESSABLE ENTITY + + If the payload body of a request contains syntactically correct data + (e.g. well-formed JSON) but the data cannot be processed (e.g. + because it fails validation against a schema), the API producer + shall respond with this response code. The "ProblemDetails" + structure shall be provided, and should include in the "detail" + attribute more information about the source of the problem. + + This error response code is only applicable for methods that have a + request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '500': + description: > + 500 INTERNAL SERVER ERROR + + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code ("catch + all error"), the API producer shall respond with this response code. + The "ProblemDetails" structure shall be provided, and shall include + in the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '503': + description: > + 503 SERVICE UNAVAILABLE + + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 for the use + of the "Retry-After" HTTP header and for the alternative to refuse + the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI + '504': + description: > + 504 GATEWAY TIMEOUT + + If the API producer encounters a timeout while waiting for a + response from an upstream server (i.e. a server that the API + producer communicates with when fulfilling a request), it should + respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: | + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure + from IETF RFC 7807 [19] is reproduced inthis structure. + Compared to the general framework defined in IETF RFC 7807 + [19], the "status" and "detail" attributes are mandated to be + included by the present document, to ensure that the response + contains additional textual information about an error. IETF + RFC 7807 [19] foresees extensibility of the "ProblemDetails" + type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to + define additional attributes that provide more information + about the error. The description column only provides some + explanation of the meaning to Facilitate understanding of the + design. For a full description, see IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that + identifies the problem type. It is encouraged that the URI + provides human-readable documentation for the problem + (e.g. using HTML) when dereferenced. When this member is + not present, its value is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It + should not change from occurrence to occurrence of the + problem, except for purposes of localization. If type is + given and other than "about:blank", this attribute shall + also be provided. A short, human-readable summary of the + problem type. It SHOULD NOT change from occurrence to + occurrence of the problem, except for purposes of + localization (e.g., using proactive content negotiation; + see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by + the origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence + of the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of + the problem. It may yield further information if + dereferenced. + type: string + format: URI +components: + schemas: + ManoEntity: + description: | + This type represents an NFV-MANO functional entity. + type: object + required: + - id + - type + - name + - description + - provider + - softwareVersion + - manoConfigurableParams + - manoApplicationState + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + 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\tThe NFV-MANO functional entity is a VIM.\n" + type: string + enum: + - NFVO + - VNFM + - VIM + name: + description: | + Human-readable name of the NFV-MANO functional entity. + This attribute can be modified with the PATCH method. + type: string + description: + description: | + Human-readable description of the NFV-MANO functional entity. + This attribute can be modified with the PATCH method. + type: string + provider: + description: > + Information about the provider of the NFV-MANO functional entity. + It typically includes the name of the provider. + type: string + softwareVersion: + description: > + The version of the software of the NFV-MANO functional entity. $ref: + "../components/SOL009_schemas.yaml#/components/schemas/Version" + manoEntityComponents: + description: "The deployed NFV-MANO functional entity components which realize the NFV-MANO functional entity. \nNOTE:\tIt is optional for the API producer to support the \"manoEntityComponents\" attribute.\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. + type: object + 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.. + 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. + 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.. + type: string + required: + - id + manoServices: + description: > + Information about the NFV-MANO services provided by the NFV-MANO + functional entity. + type: array + items: + description: > + This type represents information about an NFV-MANO service + provided by the NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: | + Human-readable name of the NFV-MANO service. + This attribute can be modified with the PATCH method. + type: string + description: + description: | + Human-readable description of the NFV-MANO service. + This attribute can be modified with the PATCH method. + 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. \nNOTE:\tA cardinality greater than one supports having different interface versions or apiEndpoints to be used for accessing the same instance of a NFV-MANO service.\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.. + type: string + minItems: 1 + _links: + description: | + Links to resources related to this resource. + 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. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + minItems: 1 + required: + - manoServiceInterfaces + required: + - id + - name + - description + - manoServiceInterfaceIds + - _links + manoConfigurableParams: + description: > + # Warning: No definition found in the document + ManoConfigurableParams + manoApplicationState: + description: > + Information and current values of the NFV-MANO functional entity’s + application state. + 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. + type: object + properties: + maxOnboardedNsdNum: + description: > + Maximum number of NSDs that can be on-boarded on the NFVO. + + NOTE: If this attribute is not present, the value of this + parameter is undefined. + type: integer + maxOnboardedVnfPkgNum: + description: > + Maximum number of VNF Packages that can be on-boarded on the + NFVO. + + NOTE: If this attribute is not present, the value of this + parameter is undefined. + type: integer + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + supportedNsdFormats: + description: | + Supported NSD data formats. + type: object + properties: + nsdFormat: + description: | + Name of the NSD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - nsdFormat + - standardVersion + required: + - supportedVnfdFormats + - supportedNsdFormats + 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. + type: object + properties: + resoruceMgmtModeSupport: + description: | + The supported resource management modes of the VNFM. + Permitted values: + - DIRECT: The VNFM supports direct mode only. + - INDIRECT: The VNFM supports indirect mode only. + - BOTH: The VNFM supports both direct and indirect mode. + 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). + type: array + items: + type: string + minItems: 1 + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: array + items: + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + minItems: 1 + required: + - resoruceMgmtModeSupport + - managedVnfInstanceInfos + - supportedVnfdFormats + 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. + type: object + _links: + description: | + Links to resources related to this resource. + type: object + required: + - self + - manoServiceInterfaces + - peerEntities + - changeState + - changeStateOpOccs + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + manoServiceInterfaces: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + peerEntities: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + changeState: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + changeStateOpOccs: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + ManoConfigModificationRequest: + description: > + This type represents attribute modifications for configuration + parameters of an NFV-MANO functional entity. + type: object + properties: + name: + description: | + New value of the "name" attribute in "ManoEntity". + type: string + description: + description: | + New value of the "description" attribute in "ManoEntity". + type: string + clockSyncs: + description: > + New content of certain entries in the "clockSyncs" attribute array + in the "ManoEntityConfigurableParams", as defined below this + table. + type: array + items: + description: | + This type represents parameters for connecting to an NTP server. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. Shall be + present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to + 255. In case of an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, separated by + colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + clockSyncsDeleteIds: + description: > + List of identifiers entries to be deleted from the "clockSyncs" + attribute array in the "ManoEntityConfigurableParams", as defined + below this table. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + defaultLogCompileBySizeValue: + description: | + Unsigned integer + type: number + defaultLogCompileByTimerValue: + description: | + Unsigned integer + type: number + manoServiceModifications: + description: > + New content of certain entries in the "manoServices" attribute + array in the "ManoEntity", as defined below this table. + type: array + items: + type: object + 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.. + type: string + name: + description: "New value for the \"name\" attribute in the \"ManoService\". \nNOTE:\tAt least one of these attributes shall be provided if requesting a modification of the NFV-MANO service identified by \"id\".\n" + type: string + description: + description: "New value for the \"description\" attribute in the \"ManoService\".\nNOTE:\tAt least one of these attributes shall be provided if requesting a modification of the NFV-MANO service identified by \"id\".\n" + type: string + required: + - id + ManoConfigModifications: + description: > + This type represents attribute modifications that were performed on the + "NFV-MANO entity" resource of the producer NFV-MANO functional entity. + The attributes that can be included consist of those requested to be + modified explicitly in the "ManoConfigModificationRequest" data + structure. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" + attribute in "ManoEntity", as defined in clause 5.6.2.3 + type: string + description: + description: > + If present, this attribute signals modifications of the + "description" attribute in "ManoEntity", as defined in clause + 5.6.2.3. + type: string + clockSyncs: + description: > + If present, this attribute signals modifications of the + "clockSyncs" attribute in "ManoEntityConfigurableParams", as + defined in clause 5.6.2.3. + type: array + items: + description: | + This type represents parameters for connecting to an NTP server. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. Shall be + present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to + 255. In case of an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, separated by + colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + clockSyncsDeleteIds: + description: > + If present, this attribute signals modifications of certain entries + in "clockSyncs" attribute in "ManoEntityConfigurableParams", as + defined in clause 5.6.2.3. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + defaultLogCompileBySizeValue: + description: | + Unsigned integer + type: number + defaultLogCompileByTimerValue: + description: | + Unsigned integer + type: number + manoServiceModifications: + description: > + If present, this attribute signals modifications of the + "manoServices" attribute array in the "ManoEntity", as defined in + clause 5.6.2.3. + type: array + items: + type: object + 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.. + type: string + name: + description: > + If present, this attribute signals modification of the "name" + attribute in the "ManoService". + type: string + description: + description: > + If present, this attribute signals modification of the + "description" attribute in the "ManoService". + type: string + required: + - id + CimSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about NFV-MANO configuration and information management changes. + type: object + properties: + filter: + description: > + This type represents a subscription filter related to notifications + about NFV-MANO configuration and information management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" are + alternatives to reference to NFV-MANO services in a filter. + They should not be used together in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the + API consumer is willing to accept when receiving a notification. + Permitted values: * BASIC: In every HTTP request to the + notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is + sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. Shall + be present if authType is "BASIC" and the contained information + has not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information has + not been provisioned out of band. Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of + the OAuth 2.0 client credentials grant type. Shall be + present if it has not been provisioned out of band. The + clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are + used to obtain authorization for API requests. Client + credentials may differ between subscriptions. The value of + clientPassword should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - callbackUri + CimSubscription: + description: > + This type represents a subscription related to notifications about + NFV-MANO configuration and information management changes + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to notifications + about NFV-MANO configuration and information management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" are + alternatives to reference to NFV-MANO services in a filter. + They should not be used together in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference + to NFV-MANO functional entity produced interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference + to NFV-MANO functional entity consumed interfaces in a + filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links to resources related to this resource. + type: object + properties: + self: + description: | + This type represents a link to a resource using an absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - callbackUri + - _links + ChangeStateRequest: + description: > + This type represents request parameters for changing the state of a + managed entity. + type: object + properties: + operationalStateChange: + description: "A change of operational state. Shall be present if the state change request refers to the operational state. NOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + operationalStateAction: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + stopType: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions:\n - GRACEFUL\tTo stop the managed entity immediately after accepting the request.\n - FORCEFUL\tTo stop the managed entity attempting to gracefully discharge the entity from service.\n" + type: string + enum: + - GRACEFUL + - FORCEFUL + gracefulStopTimeout: + description: "The time internal (in seconds) to wait for the entity to be taken out of service during graceful stop. \nNOTE:\tThe \"stopType\" shall only be provided when the \"operationalStateAction\" attribute is equal to \"STOP\" or \"RESTART\". The \"gracefulStopTimeout\" shall be absent when the \"stopType\" attribute is equal to \"FORCEFUL\", and may be provided otherwise.\n" + type: integer + required: + - operationalStateAction + administrativeStateChange: + description: "A change of administrative state. Shall be present if the state change request refers to the administrative state. \nNOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + administrativeStateAction: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + required: + - administrativeStateAction + ChangeStateOpOcc: + description: | + This type represents a Change state operation occurrence. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + operationState: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n" + type: string + enum: + - PROCESSING + - COMPLETED + - FAILED + stateEnteredTime: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + startTime: + description: > + Date-time stamp. Representation: String formatted according to IETF + RFC 3339. + type: string + format: date-time + managedObjectRef: + description: > + This type represents the identifier to reference a managed object of + a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if attribute + "manoEntityComponents" in "ManoEntity" is supported by the API + producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + changeOperationalStateRequest: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + changeAdministrativeStateRequest: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + operationParams: + description: > + Input parameters of the change state operation. This attribute shall + be formatted according to the request data type of the related + change state operation. + + The following mapping between operationType and the data type of + this attribute shall apply: + - CHANGE_STATE: ChangeStateRequest + + This attribute shall be present if this data type is returned in a + response to reading an individual resource, and may be present + according to the chosen attribute selector parameter if this data + type is returned in a response to a query of a container resource. + required: + - id + - operationState + - stateEnteredTime + - startTime + - managedObjectRef + ManoServiceInterface: + description: > + This type represents an individual NFV-MANO service interface produced + by an NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: | + Human-readable name of the NFV-MANO functional entity interface. + This attribute can be modified with the PATCH method. + type: string + type: + description: > + Type of the NFV-MANO service interface produced by the NFV-MANO + functional entity. Valid values are defined in clause 5.6.4.3. + type: string + standardVersion: + description: | + A version. + type: string + providerSpecificApiVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + type: string + apiEndpoint: + description: | + Exposed API endpoint of the interface. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - apiUri + maxConcurrentIntOpNumber: + description: "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + supportedOperations: + description: | + Information about supported operations of this interface. + type: array + items: + type: object + properties: + operationName: + description: | + Name of the operation supported on the interface. + type: string + maxConcurrentOpNumber: + description: "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + required: + - operationName + minItems: 1 + interfaceState: + description: | + State of the NFV-MANO service interface. + properties: + operationalState: + description: "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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" + type: string + enum: + - STARTED + - STOPPED + - STOPPING + - STARTING + 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 + required: + - operationalState + - administrativeState + - usageState + securityInfo: + description: > + This type represents security related information of an NFV-MANO + service interface produced by an NFV-MANO functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API producer is + specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: | + OAuth 2.0 authorization server information and configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as supported by + the API producer when performing the SSL or TLS negotiation + with the authorization server. Valid values of cipher + suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS tunnel. + Shall be present if authType contains "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as supported by + the API producer when performing the SSL or TLS negotiation + with the API client. Valid values of cipher suites are + defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + required: + - id + - name + - type + - standardVersion + - providerSpecificApiVersion + - apiVersion + - apiEndpoint + - supportedOperations + - interfaceState + ManoServiceInterfaceModificationRequest: + description: > + This type represents attribute modifications for configuration + parameters of an NFV-MANO service interface of the producer NFV-MANO + functional entity. + type: object + properties: + name: + description: "New value of the \"name\" attribute in \"ManoServiceInterface\". \nNOTE:\tChanging the name does not change the corresponding standardized API name in the resource URI (refer to \"{apiName}\" defined in clause 4.1 of ETSI GS NFV-SOL 013).\n" + type: string + apiRoot: + description: | + String formatted according to IETF RFC 3986. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + securityInfo: + description: > + This type represents security related information of an NFV-MANO + service interface produced by an NFV-MANO functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API producer is + specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: | + OAuth 2.0 authorization server information and configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as supported by + the API producer when performing the SSL or TLS negotiation + with the authorization server. Valid values of cipher + suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS tunnel. + Shall be present if authType contains "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as supported by + the API producer when performing the SSL or TLS negotiation + with the API client. Valid values of cipher suites are + defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + ManoServiceInterfaceModifications: + description: > + This type represents attribute modifications that were performed on an + Individual NFV-MANO service interface" resource. The attributes that + can be included consist of those requested to be modified explicitly in + the "ManoServiceInterfaceModificationRequest" data structure. If + applicable, additional attributes of the "ManoServiceInterface" data + structure that were modified implicitly shall also be provided. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" + attribute in "ManoServiceInterface", as defined in clause 5.6.2.11. + type: string + apiRoot: + description: | + String formatted according to IETF RFC 3986. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + securityInfo: + description: > + This type represents security related information of an NFV-MANO + service interface produced by an NFV-MANO functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API producer is + specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: | + OAuth 2.0 authorization server information and configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as supported by + the API producer when performing the SSL or TLS negotiation + with the authorization server. Valid values of cipher + suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS tunnel. + Shall be present if authType contains "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as supported by + the API producer when performing the SSL or TLS negotiation + with the API client. Valid values of cipher suites are + defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + CreatePeerEntityRequest: + description: > + This type represents request parameters for the creation of a new peer + entity resource. + type: object + properties: + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO functional + entity from the peer functional entity. + type: array + items: + description: > + This type represents an interface consumed by the producer NFV + MANO functional entity from another peer functional entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API + consumer accessing the API. + + The support of authorization methods for the API consumer + is specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI + GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + peerEntityState: + description: | + Current values of the state of the peer functional entity. + 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 + required: + - peerEntityId + - name + - type + PeerEntity: + description: | + This type represents an individual peer entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + This attribute can be modified with the PATCH method. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO functional + entity from the peer functional entity. + + This attribute can be modified with the PATCH method. + type: array + items: + description: > + This type represents an interface consumed by the producer NFV + MANO functional entity from another peer functional entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API + consumer accessing the API. + + The support of authorization methods for the API consumer + is specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI + GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + 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. + 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 + required: + - id + - peerEntityId + - name + - type + - peerEntityState + PeerEntityConfigModificationRequest: + description: > + This type represents attribute modifications for configuration + parameters of a peer entity. + type: object + properties: + name: + description: | + New value of the "name" attribute in "PeerEntity". + type: string + description: + description: > + New value of the "description" attribute in "PeerEntity", or "null" + to remove the attribute. + type: string + consumedManoInterfaces: + description: "New content of certain entries in the \"consumedManoInterfaces\" attribute array in the \"PeerEntity\", as defined below this table. \nNOTE:\tDue to the security sensitive information contained within the attribute (refer to \"securityInfo\" within the \"ConsumedManoInterfaceInfo\"), based on access control policies, the API consumer might have read only, write only, read/write, or no access at all to the attribute’s value. In case the API consumer is not allowed to modify the value of the security sensitive attribute, and the modification request includes new attribute values, the whole modification request shall be rejected, and proper error information returned.\n" + type: array + items: + description: > + This type represents an interface consumed by the producer NFV + MANO functional entity from another peer functional entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API + consumer accessing the API. + + The support of authorization methods for the API consumer + is specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI + GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + consumedManoInterfaceDeleteIds: + description: > + List of identifiers entries to be deleted from the + "consumedManoInterfaces" attribute array in the " PeerEntity ", as + defined below this table. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + 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 + PeerEntityConfigModifications: + description: > + This type represents attribute modifications that were performed on an + "Individual peer entity" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "PeerEntityConfigModificationRequest" data structure. If applicable, + additional attributes of the "PeerEntity" data structure that were + modified implicitly shall also be provided. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" + attribute in "PeerEntity", as defined in clause 5.6.2.15. + type: string + description: + description: > + If present, this attribute signals modifications of the + "description" attribute in "PeerEntity", as defined in clause + 5.6.2.15. + type: string + consumedManoInterfaces: + description: "If present, this attribute signals modifications of certain entries in \"consumedManoInterfaces\" attribute in \"PeerEntity\", as defined in clause 5.6.2.15. \nNOTE:\tDue to the security sensitive information contained within the attribute (refer to \"securityInfo\" within the \"ConsumedManoInterfaceInfo\"), based on access control policies, the API consumer might have read only, write only, read/write, or no access at all to the attribute’s value. In case the API consumer is not allowed to read the value of the security sensitive attribute, the attribute shall be omitted when the information is to be provided in a response message.\n" + type: array + items: + description: > + This type represents an interface consumed by the producer NFV + MANO functional entity from another peer functional entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API + consumer accessing the API. + + The support of authorization methods for the API consumer + is specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI + GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + consumedManoInterfaceDeleteIds: + description: > + If present, this attribute signals the deletions of certain entries + in the "consumedManoInterfaces" attribute in "PeerEntity", as + defined in clause 5.6.2.15. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + 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 + ManoConfigurableParams: + description: | + # Warning: No definition found in the document ManoConfigurableParams + ManoEntityComponent: + 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. + type: object + 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.. + 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. + 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.. + type: string + required: + - id + ManoService: + description: > + This type represents information about an NFV-MANO service provided by + the NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: | + Human-readable name of the NFV-MANO service. + This attribute can be modified with the PATCH method. + type: string + description: + description: | + Human-readable description of the NFV-MANO service. + This attribute can be modified with the PATCH method. + 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. \nNOTE:\tA cardinality greater than one supports having different interface versions or apiEndpoints to be used for accessing the same instance of a NFV-MANO service.\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.. + type: string + minItems: 1 + _links: + description: | + Links to resources related to this resource. + 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. + type: array + items: + description: > + This type represents a link to a resource using an absolute + URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + minItems: 1 + required: + - manoServiceInterfaces + required: + - id + - name + - description + - manoServiceInterfaceIds + - _links + 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. + type: object + properties: + maxOnboardedNsdNum: + description: > + Maximum number of NSDs that can be on-boarded on the NFVO. + + NOTE: If this attribute is not present, the value of this parameter + is undefined. + type: integer + maxOnboardedVnfPkgNum: + description: > + Maximum number of VNF Packages that can be on-boarded on the NFVO. + + NOTE: If this attribute is not present, the value of this parameter + is undefined. + type: integer + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + supportedNsdFormats: + description: | + Supported NSD data formats. + type: object + properties: + nsdFormat: + description: | + Name of the NSD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - nsdFormat + - standardVersion + required: + - supportedVnfdFormats + - supportedNsdFormats + 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. + type: object + properties: + resoruceMgmtModeSupport: + description: | + The supported resource management modes of the VNFM. + Permitted values: + - DIRECT: The VNFM supports direct mode only. + - INDIRECT: The VNFM supports indirect mode only. + - BOTH: The VNFM supports both direct and indirect mode. + 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). + type: array + items: + type: string + minItems: 1 + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: array + items: + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + minItems: 1 + required: + - resoruceMgmtModeSupport + - managedVnfInstanceInfos + - supportedVnfdFormats + 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. + type: object + ManoEntityConfigurableParams: + description: > + This type represents list of parameters that can be configured on the + NFV MANO functional entity. + type: object + properties: + clockSyncs: + description: >- + Properties of the clock synchronization to be used by the NFV-MANO + functional entity. + type: array + items: + description: | + This type represents parameters for connecting to an NTP server. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. Shall be + present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an + IPV4 address, string that consists of four decimal + integers separated by dots, each integer ranging from 0 to + 255. In case of an IPV6 address, string that consists of + groups of zero to four hexadecimal digits, separated by + colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + minItems: 1 + defaultLogCompileBySizeValue: + description: | + Unsigned integer + type: number + defaultLogCompileByTimerValue: + description: | + Unsigned integer + type: number + required: + - clockSyncs + - defaultLogCompileBySizeValue + - defaultLogCompileByTimerValue + ConsumedManoInterfaceInfo: + description: > + This type represents an interface consumed by the producer NFV MANO + functional entity from another peer functional entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API consumer + accessing the API. + + The support of authorization methods for the API consumer is + specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as defined by + TLS 1.2 in IETF RFC 5246. - OAUTH2: Using access token, as + defined by the OAuth 2.0 specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: | + OAuth 2.0 authorization server information and configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI GS + NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + CimNotificationsFilter: + description: > + This type represents a subscription filter related to notifications + about NFV-MANO configuration and information management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to match NFV-MANO + functional entities and their associated managed objects. + type: object + properties: + manoEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO service + name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" are + alternatives to reference to NFV-MANO services in a filter. + They should not be used together in the same filter instance, + but one alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced interfaces + with an instance identifier listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference to + NFV-MANO functional entity produced interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced interfaces + with an instance Name listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to reference to + NFV-MANO functional entity produced interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed interfaces + with an instance identifier listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference to + NFV-MANO functional entity consumed interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed interfaces + with an instance Name listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to reference to + NFV-MANO functional entity consumed interfaces in a filter. + They should not be used both in the same filter instance, but + one alternative should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + ClockSyncInfo: + description: | + This type represents parameters for connecting to an NTP server. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. Shall be + present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of an IPV4 + address, string that consists of four decimal integers separated + by dots, each integer ranging from 0 to 255. In case of an IPV6 + address, string that consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + ServerInterfaceSecurityInfo: + description: > + This type represents security related information of an NFV-MANO + service interface produced by an NFV-MANO functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API producer. + + The support of authorization methods for the API producer is + specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: | + OAuth 2.0 authorization server information and configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as supported by + the API producer when performing the SSL or TLS negotiation + with the authorization server. Valid values of cipher suites + are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS tunnel. + Shall be present if authType contains "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as supported by the + API producer when performing the SSL or TLS negotiation with the + API client. Valid values of cipher suites are defined in IETF + RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + ClientInterfaceSecurityInfo: + description: > + This type represents security related information for accessing an + NFV-MANO service interface produced by an NFV-MANO functional entity. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the API consumer + accessing the API. + + The support of authorization methods for the API consumer is + specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as defined by TLS + 1.2 in IETF RFC 5246. - OAUTH2: Using access token, as defined by + the OAuth 2.0 specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: | + OAuth 2.0 authorization server information and configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined in ETSI GS + NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + ManoServiceInterfaceTypeShortName: + description: "For the RESTful NFV-MANO APIs, valid values are all values for \"apiName\" as defined in ETSI GS NFV-SOL 002, ETSI GS NFV-SOL 003, and ETSI GS NFV-SOL 005.\nFor the NFV-MANO service interfaces for which no API is specified by ETSI NFV, valid values are defined in table 5.6.4.3-1.\nNOTE:\tThe table is expected to be updated, by removing the corresponding listed entries, once the interfaces are specified as a RESTful NFV-MANO API. \n" + type: string + UsageStateEnumType: + 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 + ChangeOperationalStateEnumType: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + ChangeAdministrativeStateEnumType: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + InterfaceOperationalStateEnumType: + description: "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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" + type: string + enum: + - STARTED + - STOPPED + - STOPPING + - STARTING + StopEnumType: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions:\n - GRACEFUL\tTo stop the managed entity immediately after accepting the request.\n - FORCEFUL\tTo stop the managed entity attempting to gracefully discharge the entity from service.\n" + type: string + enum: + - GRACEFUL + - FORCEFUL + ManoEntityEnumType: + 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\tThe NFV-MANO functional entity is a VIM.\n" + type: string + enum: + - NFVO + - VNFM + - VIM + PeerEntityEnumType: + 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. - 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 + - EM + - OSS + parameters: + filter.ManoServiceInterface: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI GS + NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this parameter + as part of the URI query string. The API consumer may supply this + parameter. + + All attribute names that appear in the ManoServiceInterface and in data + types referenced from it shall be supported by the NFV-MANO functional + entity in the expression. + in: query + required: false + schema: + type: string + filter.CimSubscription: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI GS + NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this parameter + as part of the URI query string. The API consumer may supply this + parameter. + + All attribute names that appear in the CimSubscription and in data + types referenced from it shall be supported by the NFV-MANO functional + entity in the expression. + in: query + required: false + schema: + type: string + filter.ChangeStateOpOcc: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI GS + NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this parameter + as part of the URI query string. The API consumer may supply this + parameter. + + All attribute names that appear in the ChangeStateOpOcc and in data + types referenced from it shall be supported by the NFV-MANO functional + entity in the expression. + in: query + required: false + schema: + type: string + filter.PeerEntity: + name: filter + description: > + Attribute-based filtering expression according to clause 5.2 of ETSI GS + NFV-SOL 013. + + The NFV-MANO functional entity shall support receiving this parameter + as part of the URI query string. The API consumer may supply this + parameter. + + All attribute names that appear in the PeerEntity and in data types + referenced from it shall be supported by the NFV-MANO functional entity + in the expression. + in: query + required: false + schema: + type: string + exclude_default.ManoServiceInterface: + name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the + ManoServiceInterface structure in the response body if this parameter + is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + exclude_default.CimSubscription: + name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the CimSubscription + structure in the response body if this parameter is provided, or none + of the parameters "all_fields," "fields", "exclude_fields", + "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + exclude_default.ChangeStateOpOcc: + name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the ChangeStateOpOcc + structure in the response body if this parameter is provided, or none + of the parameters "all_fields," "fields", "exclude_fields", + "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + exclude_default.PeerEntity: + name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. See clause 5.3 of ETSI GS NFV-SOL 013 for details. The + NFV-MANO functional entity shall support this parameter. + + The following attributes shall be excluded from the PeerEntity + structure in the response body if this parameter is provided, or none + of the parameters "all_fields," "fields", "exclude_fields", + "exclude_default" are provided: - none + in: query + required: false + schema: + type: string + manoServiceInterfaceId: + name: manoServiceInterfaceId + in: path + description: Identifier of the MANO service interface. + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + subscriptionId: + name: subscriptionId + in: path + description: Identifier of the subscription + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + changeStateOpOccId: + name: changeStateOpOccId + in: path + description: Identifier of the change state operation occurrence + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + peerEntityId: + name: peerEntityId + in: path + description: Identifier of the peer entity + required: true + schema: + description: | + An identifier with the intention of being globally unique. + type: string + requestBodies: + ModifyManoEntityRequest: + description: > + Parameters for the NFV-MANO configuration and information modification, + as defined in clause 5.6.2.3. The Content-Type header shall be set to + "application/merge-patch+json" according to IETF RFC 7396. + content: + application/merge-patch+json: + schema: + description: > + This type represents attribute modifications for configuration + parameters of an NFV-MANO functional entity. + type: object + properties: + name: + description: | + New value of the "name" attribute in "ManoEntity". + type: string + description: + description: | + New value of the "description" attribute in "ManoEntity". + type: string + clockSyncs: + description: > + New content of certain entries in the "clockSyncs" attribute + array in the "ManoEntityConfigurableParams", as defined below + this table. + type: array + items: + description: > + This type represents parameters for connecting to an NTP + server. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. + Shall be present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of + an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 address, + string that consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + clockSyncsDeleteIds: + description: > + List of identifiers entries to be deleted from the + "clockSyncs" attribute array in the + "ManoEntityConfigurableParams", as defined below this table. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + defaultLogCompileBySizeValue: + description: | + Unsigned integer + type: number + defaultLogCompileByTimerValue: + description: | + Unsigned integer + type: number + manoServiceModifications: + description: > + New content of certain entries in the "manoServices" attribute + array in the "ManoEntity", as defined below this table. + type: array + items: + type: object + 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.. + type: string + name: + description: "New value for the \"name\" attribute in the \"ManoService\". \nNOTE:\tAt least one of these attributes shall be provided if requesting a modification of the NFV-MANO service identified by \"id\".\n" + type: string + description: + description: "New value for the \"description\" attribute in the \"ManoService\".\nNOTE:\tAt least one of these attributes shall be provided if requesting a modification of the NFV-MANO service identified by \"id\".\n" + type: string + required: + - id + required: true + ChangeManoEntityStateRequest: + description: | + Parameters for the change state operation, as defined in clause 5.6.2.8. + content: + application/json: + schema: + description: > + This type represents request parameters for changing the state of + a managed entity. + type: object + properties: + operationalStateChange: + description: "A change of operational state. Shall be present if the state change request refers to the operational state. NOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + operationalStateAction: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + stopType: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions:\n - GRACEFUL\tTo stop the managed entity immediately after accepting the request.\n - FORCEFUL\tTo stop the managed entity attempting to gracefully discharge the entity from service.\n" + type: string + enum: + - GRACEFUL + - FORCEFUL + gracefulStopTimeout: + description: "The time internal (in seconds) to wait for the entity to be taken out of service during graceful stop. \nNOTE:\tThe \"stopType\" shall only be provided when the \"operationalStateAction\" attribute is equal to \"STOP\" or \"RESTART\". The \"gracefulStopTimeout\" shall be absent when the \"stopType\" attribute is equal to \"FORCEFUL\", and may be provided otherwise.\n" + type: integer + required: + - operationalStateAction + administrativeStateChange: + description: "A change of administrative state. Shall be present if the state change request refers to the administrative state. \nNOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + administrativeStateAction: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + required: + - administrativeStateAction + required: true + ModifyManoEnityInterfaceRequest: + description: > + Parameters for the modification of configuration parameters of the + NFV-MANO service interface, as defined in clause 5.6.2.12. + + The Content-Type header shall be set to "application/merge-patch+json" + according to IETF RFC 7396. + content: + application/merge-patch+json: + schema: + description: > + This type represents attribute modifications for configuration + parameters of an NFV-MANO service interface of the producer + NFV-MANO functional entity. + type: object + properties: + name: + description: "New value of the \"name\" attribute in \"ManoServiceInterface\". \nNOTE:\tChanging the name does not change the corresponding standardized API name in the resource URI (refer to \"{apiName}\" defined in clause 4.1 of ETSI GS NFV-SOL 013).\n" + type: string + apiRoot: + description: | + String formatted according to IETF RFC 3986. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO functional + entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API producer + is specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing the SSL + or TLS negotiation with the authorization server. + Valid values of cipher suites are defined in IETF RFC + 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS + tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing the SSL + or TLS negotiation with the API client. Valid values + of cipher suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + required: true + ChangeManoEntityInterfaceStateRequest: + description: > + Parameters for the change state operation, as defined in clause + 5.6.2.8. + content: + application/json: + schema: + description: > + This type represents request parameters for changing the state of + a managed entity. + type: object + properties: + operationalStateChange: + description: "A change of operational state. Shall be present if the state change request refers to the operational state. NOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + operationalStateAction: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + stopType: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions:\n - GRACEFUL\tTo stop the managed entity immediately after accepting the request.\n - FORCEFUL\tTo stop the managed entity attempting to gracefully discharge the entity from service.\n" + type: string + enum: + - GRACEFUL + - FORCEFUL + gracefulStopTimeout: + description: "The time internal (in seconds) to wait for the entity to be taken out of service during graceful stop. \nNOTE:\tThe \"stopType\" shall only be provided when the \"operationalStateAction\" attribute is equal to \"STOP\" or \"RESTART\". The \"gracefulStopTimeout\" shall be absent when the \"stopType\" attribute is equal to \"FORCEFUL\", and may be provided otherwise.\n" + type: integer + required: + - operationalStateAction + administrativeStateChange: + description: "A change of administrative state. Shall be present if the state change request refers to the administrative state. \nNOTE:\tIn the present document version, a request shall only include an operational state change (attribute \"operationalStateChange\") or an administrative state change request (attribute \"administrativeStateChange\"), but not both.\n" + type: object + properties: + administrativeStateAction: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + required: + - administrativeStateAction + required: true + CimSubscriptionRequest: + description: > + Details of the subscription to be created, as defined in clause + 5.6.2.5-1. + content: + application/json: + schema: + description: > + This type represents a subscription request related to + notifications about NFV-MANO configuration and information + management changes. + type: object + properties: + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and information + management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" + are alternatives to reference to NFV-MANO services in + a filter. They should not be used together in the + same filter instance, but one alternative should be + chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + authentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which + the API consumer is willing to accept when receiving a + notification. Permitted values: * BASIC: In every HTTP + request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification + endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. Shall be + absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. + Shall be present if it has not been provisioned out of + band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. Shall be present if authType is + "OAUTH2_CLIENT_CREDENTIALS" and the contained information + has not been provisioned out of band. Shall be absent + otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token + request of the OAuth 2.0 client credentials grant + type. Shall be present if it has not been provisioned + out of band. The clientId and clientPassword passed in + a subscription shall not be the same as the clientId + and clientPassword that are used to obtain + authorization for API requests. Client credentials may + differ between subscriptions. The value of + clientPassword should be generated by a random + process. + type: string + clientPassword: + description: > + Client password to be used in the access token request + of the OAuth 2.0 client credentials grant type. Shall + be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a + subscription shall not be the same as the clientId and + clientPassword that are used to obtain authorization + for API requests. Client credentials may differ + between subscriptions. The value of clientPassword + should be generated by a random process. + type: string + tokenEndpoint: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - callbackUri + required: true + CreatePeerEntityRequest: + description: | + The peer entity creation parameters, as defined in clause 5.6.2.14. + content: + application/json: + schema: + description: > + This type represents request parameters for the creation of a new + peer entity resource. + type: object + properties: + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the + API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + peerEntityState: + description: | + Current values of the state of the peer functional entity. + 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 + required: + - peerEntityId + - name + - type + required: true + ModifyPeerEntityRequest: + description: > + Parameters for the modification of configuration parameters of the peer + functional entity, as defined in clause 5.6.2.16 + + The Content-Type header shall be set to "application/merge-patch+json" + according to IETF RFC 7396. + content: + application/merge-patch+json: + schema: + description: > + This type represents attribute modifications for configuration + parameters of a peer entity. + type: object + properties: + name: + description: | + New value of the "name" attribute in "PeerEntity". + type: string + description: + description: > + New value of the "description" attribute in "PeerEntity", or + "null" to remove the attribute. + type: string + consumedManoInterfaces: + description: "New content of certain entries in the \"consumedManoInterfaces\" attribute array in the \"PeerEntity\", as defined below this table. \nNOTE:\tDue to the security sensitive information contained within the attribute (refer to \"securityInfo\" within the \"ConsumedManoInterfaceInfo\"), based on access control policies, the API consumer might have read only, write only, read/write, or no access at all to the attribute’s value. In case the API consumer is not allowed to modify the value of the security sensitive attribute, and the modification request includes new attribute values, the whole modification request shall be rejected, and proper error information returned.\n" + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the + API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + consumedManoInterfaceDeleteIds: + description: > + List of identifiers entries to be deleted from the + "consumedManoInterfaces" attribute array in the " PeerEntity + ", as defined below this table. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + 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: true + responses: + mano_entity.get.200: + description: > + 200 OK + + Shall be returned when configuration and information about the NFV-MANO + functional entity has been read successfully. The response body shall + contain a representation of the NFV-MANO functional entity, as defined + in clause 5.6.2.2. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents an NFV-MANO functional entity. + type: object + required: + - id + - type + - name + - description + - provider + - softwareVersion + - manoConfigurableParams + - manoApplicationState + - _links + properties: + id: + description: | + An identifier with the intention of being globally unique. + 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\tThe NFV-MANO functional entity is a VIM.\n" + type: string + enum: + - NFVO + - VNFM + - VIM + name: + description: | + Human-readable name of the NFV-MANO functional entity. + This attribute can be modified with the PATCH method. + type: string + description: + description: | + Human-readable description of the NFV-MANO functional entity. + This attribute can be modified with the PATCH method. + type: string + provider: + description: > + Information about the provider of the NFV-MANO functional + entity. It typically includes the name of the provider. + type: string + softwareVersion: + description: > + The version of the software of the NFV-MANO functional entity. + $ref: + "../components/SOL009_schemas.yaml#/components/schemas/Version" + manoEntityComponents: + description: "The deployed NFV-MANO functional entity components which realize the NFV-MANO functional entity. \nNOTE:\tIt is optional for the API producer to support the \"manoEntityComponents\" attribute.\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. + type: object + 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.. + 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. + 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.. + type: string + required: + - id + manoServices: + description: > + Information about the NFV-MANO services provided by the + NFV-MANO functional entity. + type: array + items: + description: > + This type represents information about an NFV-MANO service + provided by the NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: | + Human-readable name of the NFV-MANO service. + This attribute can be modified with the PATCH method. + type: string + description: + description: | + Human-readable description of the NFV-MANO service. + This attribute can be modified with the PATCH method. + 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. \nNOTE:\tA cardinality greater than one supports having different interface versions or apiEndpoints to be used for accessing the same instance of a NFV-MANO service.\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.. + type: string + minItems: 1 + _links: + description: | + Links to resources related to this resource. + 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. + type: array + items: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + minItems: 1 + required: + - manoServiceInterfaces + required: + - id + - name + - description + - manoServiceInterfaceIds + - _links + manoConfigurableParams: + description: > + # Warning: No definition found in the document + ManoConfigurableParams + manoApplicationState: + description: > + Information and current values of the NFV-MANO functional + entity’s application state. + 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. + type: object + properties: + maxOnboardedNsdNum: + description: > + Maximum number of NSDs that can be on-boarded on the + NFVO. + + NOTE: If this attribute is not present, the value of this + parameter is undefined. + type: integer + maxOnboardedVnfPkgNum: + description: > + Maximum number of VNF Packages that can be on-boarded on + the NFVO. + + NOTE: If this attribute is not present, the value of this + parameter is undefined. + type: integer + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + supportedNsdFormats: + description: | + Supported NSD data formats. + type: object + properties: + nsdFormat: + description: | + Name of the NSD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - nsdFormat + - standardVersion + required: + - supportedVnfdFormats + - supportedNsdFormats + 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. + type: object + properties: + resoruceMgmtModeSupport: + description: | + The supported resource management modes of the VNFM. + Permitted values: + - DIRECT: The VNFM supports direct mode only. + - INDIRECT: The VNFM supports indirect mode only. + - BOTH: The VNFM supports both direct and indirect mode. + 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). + type: array + items: + type: string + minItems: 1 + supportedVnfdFormats: + description: | + Supported VNFD data formats. + type: array + items: + type: object + properties: + vnfdFormat: + description: | + Name of the VNFD format. + Permitted values: + - TOSCA: The VNFD follows TOSCA definition, according to ETSI + GS NFV-SOL 001 standard. + - YANG: The VNFD follows YANG definition according to ETSI + GS NFV-SOL 006 standard. + type: string + enum: + - TOSCA + - YANG + standardVersion: + description: | + A version. + type: string + required: + - vnfdFormat + - standardVersion + minItems: 1 + required: + - resoruceMgmtModeSupport + - managedVnfInstanceInfos + - supportedVnfdFormats + 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. + type: object + _links: + description: | + Links to resources related to this resource. + type: object + required: + - self + - manoServiceInterfaces + - peerEntities + - changeState + - changeStateOpOccs + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + manoServiceInterfaces: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + peerEntities: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + changeState: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + changeStateOpOccs: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + mano_entity.patch.200: + description: > + 200 OK + + Shall be returned when the modification of configuration on the + NFV-MANO functional entity has been accepted and completed. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents attribute modifications that were performed + on the "NFV-MANO entity" resource of the producer NFV-MANO + functional entity. The attributes that can be included consist of + those requested to be modified explicitly in the + "ManoConfigModificationRequest" data structure. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the + "name" attribute in "ManoEntity", as defined in clause + 5.6.2.3 + type: string + description: + description: > + If present, this attribute signals modifications of the + "description" attribute in "ManoEntity", as defined in clause + 5.6.2.3. + type: string + clockSyncs: + description: > + If present, this attribute signals modifications of the + "clockSyncs" attribute in "ManoEntityConfigurableParams", as + defined in clause 5.6.2.3. + type: array + items: + description: > + This type represents parameters for connecting to an NTP + server. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + type: + description: | + Type of clock synchronization. + Permitted values: + - NTP: For Network Time Protocol (NTP) based clock synchronization. + - OTHER: For other types of clock synchronization. + type: string + enum: + - NTP + - OTHER + ntpServerInfo: + description: > + Information for the NTP based clock synchronization. + Shall be present if type = "NTP". + type: object + properties: + ipAddress: + description: > + An IPV4 or IPV6 address. Representation: In case of + an IPV4 address, string that consists of four + decimal integers separated by dots, each integer + ranging from 0 to 255. In case of an IPV6 address, + string that consists of groups of zero to four + hexadecimal digits, separated by colons. + type: string + format: IP + hostname: + description: "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n" + type: string + otherClockSyncParams: + 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. + type: object + required: + - id + - type + clockSyncsDeleteIds: + description: > + If present, this attribute signals modifications of certain + entries in "clockSyncs" attribute in + "ManoEntityConfigurableParams", as defined in clause 5.6.2.3. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + defaultLogCompileBySizeValue: + description: | + Unsigned integer + type: number + defaultLogCompileByTimerValue: + description: | + Unsigned integer + type: number + manoServiceModifications: + description: > + If present, this attribute signals modifications of the + "manoServices" attribute array in the "ManoEntity", as + defined in clause 5.6.2.3. + type: array + items: + type: object + 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.. + type: string + name: + description: > + If present, this attribute signals modification of the + "name" attribute in the "ManoService". + type: string + description: + description: > + If present, this attribute signals modification of the + "description" attribute in the "ManoService". + type: string + required: + - id + mano_entity.patch.409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the "NFV-MANO + entity" resource. + + Typically, this is due to the fact that another configuration and + information modification is ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + mano_entity.patch.412: + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in an + HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + mano_entity-change_state.post.202: + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + + The response body shall be empty. + + The HTTP response shall include a "Location" HTTP header that contains + the URI of the newly-created "Individual change state operation + occurrence" resource corresponding to the operation. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state operation + occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + mano_entity-change_state.post.409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the resource. + + Typically, this is due to the fact that the resource is in an + incompatible state, or that another change state operation is ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute shall convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + mano_entity-mano_interfaces.get.200: + description: > + 200 OK + + Shall be returned when information about zero or more NFV-MANO service + interfaces has been queried successfully. + + The response body shall contain in an array the representations of zero + or more NFV-MANO service interfaces, as defined in clause 5.6.2.11. + + If the “filter" URI parameter or one of the "all_fields", "fields" (if + supported), "exclude_fields" (if supported) or "exclude_default" URI + parameters was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clauses + 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: > + This type represents an individual NFV-MANO service interface + produced by an NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: > + Human-readable name of the NFV-MANO functional entity + interface. + + This attribute can be modified with the PATCH method. + type: string + type: + description: > + Type of the NFV-MANO service interface produced by the + NFV-MANO functional entity. Valid values are defined in + clause 5.6.4.3. + type: string + standardVersion: + description: | + A version. + type: string + providerSpecificApiVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + type: string + apiEndpoint: + description: | + Exposed API endpoint of the interface. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - apiUri + maxConcurrentIntOpNumber: + description: "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + supportedOperations: + description: | + Information about supported operations of this interface. + type: array + items: + type: object + properties: + operationName: + description: | + Name of the operation supported on the interface. + type: string + maxConcurrentOpNumber: + description: "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + required: + - operationName + minItems: 1 + interfaceState: + description: | + State of the NFV-MANO service interface. + properties: + operationalState: + description: "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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" + type: string + enum: + - STARTED + - STOPPED + - STOPPING + - STARTING + 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 + required: + - operationalState + - administrativeState + - usageState + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO + functional entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API + producer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the authorization + server. Valid values of cipher suites are defined + in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS + tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing the + SSL or TLS negotiation with the API client. Valid + values of cipher suites are defined in IETF RFC + 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + required: + - id + - name + - type + - standardVersion + - providerSpecificApiVersion + - apiVersion + - apiEndpoint + - supportedOperations + - interfaceState + mano_entity-mano_interfaces.get.400: + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + mano_entity-mano_interface.get.200: + description: > + 200 OK + + Shall be returned when information about an individual NFV-MANO service + interface has been read successfully. + + The response body shall contain a representation of the NFV-MANO + service interface, as defined in clause 5.6.2.11. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents an individual NFV-MANO service interface + produced by an NFV-MANO functional entity. + type: object + 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.. + type: string + name: + description: > + Human-readable name of the NFV-MANO functional entity + interface. + + This attribute can be modified with the PATCH method. + type: string + type: + description: > + Type of the NFV-MANO service interface produced by the + NFV-MANO functional entity. Valid values are defined in + clause 5.6.4.3. + type: string + standardVersion: + description: | + A version. + type: string + providerSpecificApiVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + type: string + apiEndpoint: + description: | + Exposed API endpoint of the interface. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - apiUri + maxConcurrentIntOpNumber: + description: "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + supportedOperations: + description: | + Information about supported operations of this interface. + type: array + items: + type: object + properties: + operationName: + description: | + Name of the operation supported on the interface. + type: string + maxConcurrentOpNumber: + description: "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n" + type: integer + required: + - operationName + minItems: 1 + interfaceState: + description: | + State of the NFV-MANO service interface. + properties: + operationalState: + description: "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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" + type: string + enum: + - STARTED + - STOPPED + - STOPPING + - STARTING + 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 + required: + - operationalState + - administrativeState + - usageState + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO functional + entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API producer + is specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing the SSL + or TLS negotiation with the authorization server. + Valid values of cipher suites are defined in IETF RFC + 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS + tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing the SSL + or TLS negotiation with the API client. Valid values + of cipher suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + required: + - id + - name + - type + - standardVersion + - providerSpecificApiVersion + - apiVersion + - apiEndpoint + - supportedOperations + - interfaceState + mano_entity-mano_interface.patch.200: + description: > + 200 OK + + Shall be returned when the request has been accepted and completed. + + The response body shall contain a representation of the attribute + modifications for the "Individual NFV-MANO service interface" resource, + as defined in clause 5.6.2.13. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents attribute modifications that were performed + on an Individual NFV-MANO service interface" resource. The + attributes that can be included consist of those requested to be + modified explicitly in the + "ManoServiceInterfaceModificationRequest" data structure. If + applicable, additional attributes of the "ManoServiceInterface" + data structure that were modified implicitly shall also be + provided. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" + attribute in "ManoServiceInterface", as defined in clause + 5.6.2.11. + type: string + apiRoot: + description: | + String formatted according to IETF RFC 3986. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + type: string + securityInfo: + description: > + This type represents security related information of an + NFV-MANO service interface produced by an NFV-MANO functional + entity. + type: object + properties: + authType: + description: > + Type of API request authorization to be used by the API + producer. + + The support of authorization methods for the API producer + is specified in clause 8.3.6 of ETSI GS NFV-SOL 013. + + Permitted values: + - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. + - OAUTH2: Using access token, as defined by the OAuth 2.0 specification + in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + webFingerHost: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - webFingerHost + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + properties: + authServerId: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - authServerId + tlsCipherSuites: + description: > + List of cipher suites that shall be declared as + supported by the API producer when performing the SSL + or TLS negotiation with the authorization server. + Valid values of cipher suites are defined in IETF RFC + 8447. + type: array + items: + type: string + minItems: 1 + required: + - providedConfiguration + - tlsCipherSuites + tlsTunnelInfo: + description: > + Information and configuration related to the use of TLS + tunnel. Shall be present if authType contains + "TLS_TUNNEL". + type: object + properties: + tlsTunnelCipherSuites: + description: >- + List of cipher suites that shall be declared as + supported by the API producer when performing the SSL + or TLS negotiation with the API client. Valid values + of cipher suites are defined in IETF RFC 8447. + type: array + items: + type: string + minItems: 1 + required: + - tlsTunnelCipherSuites + required: + - authType + - oauthServerInfo + metadata: + 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. + type: object + mano_entity-mano_interface.patch.409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the "Individual + NFV-MANO service interface" resource. + + Typically, this is due to the fact that another operation is ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + mano_entity-mano_interface.patch.412: + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in an + HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + mano_entity-mano_interface-change_state.post.202: + description: > + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + + The response body shall be empty. + + The HTTP response shall include a “Location†HTTP header that contains + the URI of the newly-created "Individual change state operation + occurrence" resource corresponding to the operation. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: > + The resource URI of the created "Individual change state operation + occurence" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + mano_entity-mano_interface-change_state.post.409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the resource. + + Typically, this is due to the fact that the resource is in an + incompatible state, or that another change state operation is ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute shall convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + subscriptions.post.201: + description: > + 201 CREATED + + Shall be returned when the subscription has been created successfully. + + The response body shall contain a representation of the created + "Individual subscription" resource. + + The HTTP response shall include a "Location" HTTP header that points to + the created "Individual subscription" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + The resource URI of the created "Individual subscription" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications + about NFV-MANO configuration and information management changes + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and information + management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" + are alternatives to reference to NFV-MANO services in + a filter. They should not be used together in the + same filter instance, but one alternative should be + chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links to resources related to this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - callbackUri + - _links + subscriptions.post.303: + description: > + 303 SEE OTHER + + SShall be returned when a subscription with the same callbackURI and + the same filter already exists and the policy of NFV-MANO functional + entity is to not create redundant subscriptions. + + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing "Individual subscription" resource. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + The resource URI of the created "Individual subscription" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + subscriptions.get.200: + description: > + 200 OK + + Shall be returned when the list of subscriptions has been queried + successfully. + + The response body shall contain in an array the representations of all + active subscriptions of the functional block that invokes the method, + i.e., zero or more representations of NFV-MANO configuration and + information management subscriptions as defined in clause 5.6.2.6. + + If the "filter" URI parameter was supplied in the request, the data in + the response body shall have been transformed according to the rules + specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: > + This type represents a subscription related to notifications + about NFV-MANO configuration and information management changes + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and information + management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to + match NFV-MANO functional entities and their associated + managed objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and + "manoServiceNames" are alternatives to reference to + NFV-MANO services in a filter. They should not be + used together in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance identifier + listed in this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity + produced interfaces with an instance Name listed in + this attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance identifier + listed in this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity + consumed interfaces with an instance Name listed in + this attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links to resources related to this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - callbackUri + - _links + subscriptions.get.400: + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + subscription.get.200: + description: > + 200 OK + + Shall be returned when information about an individual subscription has + been read successfully. + + The response body shall contain a representation of the "Individual + subscription" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents a subscription related to notifications + about NFV-MANO configuration and information management changes + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + filter: + description: > + This type represents a subscription filter related to + notifications about NFV-MANO configuration and information + management. + type: object + properties: + manoEntitySubscriptionFilter: + description: > + This type represents subscription filter criteria to match + NFV-MANO functional entities and their associated managed + objects. + type: object + properties: + manoEntityId: + description: > + An identifier with the intention of being globally + unique. + type: string + manoServiceIds: + description: "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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.. + type: string + manoServiceNames: + description: > + If present, match NFV-MANO services with an NFV-MANO + service name listed in this attribute. + + The attributes "manoServiceIds" and "manoServiceNames" + are alternatives to reference to NFV-MANO services in + a filter. They should not be used together in the + same filter instance, but one alternative should be + chosen. + type: array + items: + type: string + manoServiceInterfaceIds: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance identifier listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + 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.. + type: string + manoServiceInterfaceNames: + description: > + If present, match NFV-MANO functional entity produced + interfaces with an instance Name listed in this + attribute. + + The attributes "manoServiceInterfaceIds" and + "manoServiceInterfaceNames" are alternatives to + reference to NFV-MANO functional entity produced + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + consumedManoInterfaceIds: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance identifier listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + description: > + An identifier with the intention of being globally + unique. + type: string + consumedManoInterfaceNames: + description: > + If present, match NFV-MANO functional entity consumed + interfaces with an instance Name listed in this + attribute. + + The attributes "consumedManoInterfaceIds" and + "consumedManoInterfaceNames" are alternatives to + reference to NFV-MANO functional entity consumed + interfaces in a filter. They should not be used both + in the same filter instance, but one alternative + should be chosen. + type: array + items: + type: string + notificationTypes: + description: "Match particular notification types. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n" + type: array + items: + type: string + enum: + - InformationChangedNotification + - ChangeStateNotification + callbackUri: + description: | + String formatted according to IETF RFC 3986. + type: string + _links: + description: | + Links to resources related to this resource. + type: object + properties: + self: + description: > + This type represents a link to a resource using an + absolute URI. + type: object + required: + - href + properties: + href: + description: | + String formatted according to IETF RFC 3986. + type: string + required: + - self + required: + - id + - callbackUri + - _links + subscription.delete.204: + description: > + 204 NO CONTENT + + Shall be returned when the "Individual subscription" resource has been + deleted successfully. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + change_state_ops.get.200: + description: > + 200 OK + + Shall be returned when status information for zero or more "change + state operation occurrences" has been queried successfully. + + The response body shall contain in an array the status information + about zero or more "Individual change state operation occurrences", as + defined in clause 5.6.2.9. + + If the “filter" URI parameter or one of the "all_fields", "fields" (if + supported), "exclude_fields" (if supported) or "exclude_default" URI + parameters was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clauses + 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + This type represents a Change state operation occurrence. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + operationState: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n" + type: string + enum: + - PROCESSING + - COMPLETED + - FAILED + stateEnteredTime: + description: > + Date-time stamp. Representation: String formatted according + to IETF RFC 3339. + type: string + format: date-time + startTime: + description: > + Date-time stamp. Representation: String formatted according + to IETF RFC 3339. + type: string + format: date-time + managedObjectRef: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: > + An identifier with the intention of being globally + unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + changeOperationalStateRequest: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + changeAdministrativeStateRequest: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + operationParams: + description: > + Input parameters of the change state operation. This + attribute shall be formatted according to the request data + type of the related change state operation. + + The following mapping between operationType and the data + type of this attribute shall apply: + - CHANGE_STATE: ChangeStateRequest + + This attribute shall be present if this data type is + returned in a response to reading an individual resource, + and may be present according to the chosen attribute + selector parameter if this data type is returned in a + response to a query of a container resource. + required: + - id + - operationState + - stateEnteredTime + - startTime + - managedObjectRef + change_state_ops.get.400: + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + Version: + description: > + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + change_state_op.get.200: + description: > + 200 OK + + Shall be returned when information about an "Individual change state + operation occurrence" resource has been read successfully. + + The response body shall contain status information about a change state + operation occurrence, as defined in clause 5.6.2.9. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents a Change state operation occurrence. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + operationState: + description: "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n" + type: string + enum: + - PROCESSING + - COMPLETED + - FAILED + stateEnteredTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + startTime: + description: > + Date-time stamp. Representation: String formatted according to + IETF RFC 3339. + type: string + format: date-time + managedObjectRef: + description: > + This type represents the identifier to reference a managed + object of a particular type. + type: object + properties: + type: + description: > + Indicates the type of managed object. Permitted values: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + + The "MANO_ENTITY COMPONENT" is only applicable if + attribute "manoEntityComponents" in "ManoEntity" is + supported by the API producer. + type: string + enum: + - MANO_ENTITY + - MANO_SERVICE + - MANO_SERVICE_IF + - CONSUMED_MANO_IF + - MANO_ENTITY_COMPONENT + objectId: + description: | + An identifier with the intention of being globally unique. + type: string + subObjectId: + 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.. + type: string + required: + - type + - objectId + changeOperationalStateRequest: + description: "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n" + type: string + enum: + - START + - STOP + - RESTART + changeAdministrativeStateRequest: + description: "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n" + type: string + enum: + - LOCK + - UNLOCK + operationParams: + description: > + Input parameters of the change state operation. This attribute + shall be formatted according to the request data type of the + related change state operation. + + The following mapping between operationType and the data type + of this attribute shall apply: + - CHANGE_STATE: ChangeStateRequest + + This attribute shall be present if this data type is returned + in a response to reading an individual resource, and may be + present according to the chosen attribute selector parameter + if this data type is returned in a response to a query of a + container resource. + required: + - id + - operationState + - stateEnteredTime + - startTime + - managedObjectRef + peer_entities.post.201: + description: > + 201 CREATED + + Shall be returned when a new "Individual peer entity" resource has been + created successfully. + + The response body shall contain a representation of the created + resource with regards to a peer entity, as defined in clause 5.6.2.15. + + The HTTP response shall include a “Location†HTTP header that points to + the created "Individual peer entity" resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Location: + description: | + The resource URI of the created "Individual peer entity" resource. + schema: + type: string + format: url + minimum: 1 + maximum: 1 + content: + application/json: + schema: + description: | + This type represents an individual peer entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + This attribute can be modified with the PATCH method. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + + This attribute can be modified with the PATCH method. + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the + API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + 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. + 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 + required: + - id + - peerEntityId + - name + - type + - peerEntityState + peer_entities.get.200: + description: > + 200 OK + + Shall be returned when information about zero or more peer entities has + been queried successfully. + + The response body shall contain in an array the resource + representations of zero or more peer entities, as defined in clause + 5.6.2.15. + + If the “filter" URI parameter or one of the "all_fields", "fields" (if + supported), "exclude_fields" (if supported) or "exclude_default" URI + parameters was supplied in the request, the data in the response body + shall have been transformed according to the rules specified in clauses + 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + + If the NFV-MANO functional entity supports alternative N°2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + inclusion of the Link HTTP header in this response shall follow the + provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + Link: + description: > + Reference to other resources. Link HTTP header in this response + shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL + 013. + schema: + type: string + minimum: 0 + maximum: 1 + content: + application/json: + schema: + type: array + items: + description: | + This type represents an individual peer entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + This attribute can be modified with the PATCH method. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + + This attribute can be modified with the PATCH method. + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by + the API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, + as defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: + Using access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + 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. + 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 + required: + - id + - peerEntityId + - name + - type + - peerEntityState + peer_entities.get.400: + description: | + 400 BAD REQUEST + Shall be returned upon the following errors: + - Invalid attribute-based filtering expression. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Invalid attribute selector. + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + - Response too big. + If the NFV-MANO functional entity supports alternative N°1 (error) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, + this error response shall follow the provisions in clause 5.4.2.2 of + ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + peer_entitie.get.200: + description: > + 200 OK + + Shall be returned when information about an individual peer functional + entity has been read successfully. + + The response body shall contain a resource representation of the peer + functional entity, as defined in clause 5.6.2.15. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: | + This type represents an individual peer entity. + type: object + properties: + id: + description: | + An identifier with the intention of being globally unique. + type: string + peerEntityId: + description: | + An identifier with the intention of being globally unique. + type: string + name: + description: | + Human-readable name of the peer functional entity. + This attribute can be modified with the PATCH method. + 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. - 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 + - EM + - OSS + description: + description: | + Human-readable description of the peer functional entity. + This attribute can be modified with the PATCH method. + type: string + consumedManoInterfaces: + description: > + Information of the interface consumed by the NFV-MANO + functional entity from the peer functional entity. + + This attribute can be modified with the PATCH method. + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the + API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + 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. + 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 + required: + - id + - peerEntityId + - name + - type + - peerEntityState + peer_entitie.patch.200: + description: > + 200 OK + + Shall be returned when the request has been accepted and completed. + + The response body shall contain a representation of the attribute + modifications for the "Individual peer entity" resource, as defined in + clause 5.6.2.17. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + This type represents attribute modifications that were performed + on an "Individual peer entity" resource. The attributes that can + be included consist of those requested to be modified explicitly + in the "PeerEntityConfigModificationRequest" data structure. If + applicable, additional attributes of the "PeerEntity" data + structure that were modified implicitly shall also be provided. + type: object + properties: + name: + description: > + If present, this attribute signals modifications of the "name" + attribute in "PeerEntity", as defined in clause 5.6.2.15. + type: string + description: + description: > + If present, this attribute signals modifications of the + "description" attribute in "PeerEntity", as defined in clause + 5.6.2.15. + type: string + consumedManoInterfaces: + description: "If present, this attribute signals modifications of certain entries in \"consumedManoInterfaces\" attribute in \"PeerEntity\", as defined in clause 5.6.2.15. \nNOTE:\tDue to the security sensitive information contained within the attribute (refer to \"securityInfo\" within the \"ConsumedManoInterfaceInfo\"), based on access control policies, the API consumer might have read only, write only, read/write, or no access at all to the attribute’s value. In case the API consumer is not allowed to read the value of the security sensitive attribute, the attribute shall be omitted when the information is to be provided in a response message.\n" + type: array + items: + description: > + This type represents an interface consumed by the producer + NFV MANO functional entity from another peer functional + entity. + type: object + properties: + id: + description: > + An identifier with the intention of being globally + unique. + type: string + name: + description: | + Human-readable name of the NFV-MANO interface. + 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. + type: string + standardVersion: + description: | + A version. + type: string + apiVersion: + description: | + A version. + 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. + type: object + properties: + apiRoot: + description: | + String formatted according to IETF RFC 3986. + 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. + 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. + type: string + apiUri: + description: | + String formatted according to IETF RFC 3986. + 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. + type: object + required: + - authType + - oauthServerInfo + properties: + authType: + description: > + Type of API request authorization to be used by the + API consumer accessing the API. + + The support of authorization methods for the API + consumer is specified in clause 8.3.6 of ETSI GS + NFV-SOL 013. + + Permitted values: - TLS_TUNNEL: Using TLS tunnel, as + defined by TLS 1.2 in IETF RFC 5246. - OAUTH2: Using + access token, as defined by the OAuth 2.0 + specification in IETF RFC 6749. + type: array + items: + type: string + enum: + - TLS_TUNNEL + - OAUTH2 + minItems: 1 + oauthServerInfo: + description: > + OAuth 2.0 authorization server information and + configuration. + type: object + properties: + dynamicDiscovery: + description: "Configuration data used when performing dynamic discovery of the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. + type: string + format: uri + providedConfiguration: + description: "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n" + type: object + required: + - authServerId + properties: + authServerId: + description: > + Authorization server identifier as defined + in ETSI GS NFV-SEC 022. + 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. + 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". + 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. + type: array + items: + type: string + minItems: 1 + required: + - id + - name + - type + - standardVersion + - apiVersion + - apiEndpoint + consumedManoInterfaceDeleteIds: + description: > + If present, this attribute signals the deletions of certain + entries in the "consumedManoInterfaces" attribute in + "PeerEntity", as defined in clause 5.6.2.15. + type: array + items: + description: | + An identifier with the intention of being globally unique. + type: string + 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 + peer_entitie.patch.409: + description: > + 409 CONFLICT. + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the "Individual + peer entity" resource. + + Typically, this is due to the fact that another operation is ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + peer_entitie.patch.412: + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in an + HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + peer_entitie.delete.204: + description: > + 204 NO CONTENT + + Shall be returned when the "Individual peer entity" resource has been + deleted successfully. + + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + peer_entitie.delete.409: + description: > + 409 CONFLICT. + + Shall be returned upon the following error: The operation cannot be + executed currently, due to a conflict with the state of the "Individual + peer entity" resource. + + Typically, this is due to the fact that another operation is ongoing. + + The response body shall contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + peer_entitie.delete.412: + description: > + 412 PRECONDITION FAILED + + Shall be returned upon the following error: A precondition given in an + HTTP request header is not fulfilled. + + Typically, this is due to an ETag mismatch, indicating that the + resource was modified by another entity. + + The response body should contain a ProblemDetails structure, in which + the "detail" attribute should convey more information about the error. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP request + has provided an invalid authorization token. + schema: + type: string + Version: + description: | + Version of the API used in the response. + schema: + type: string + content: + application/json: + schema: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present + document, to ensure that the response contains additional textual + information about an error. IETF RFC 7807 [19] foresees + extensibility of the "ProblemDetails" type. It is possible that + particular APIs in the present document, or particular + implementations, define extensions to define additional attributes + that provide more information about the error. The description + column only provides some explanation of the meaning to Facilitate + understanding of the design. For a full description, see IETF RFC + 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies + the problem type. It is encouraged that the URI provides + human-readable documentation for the problem (e.g. using HTML) + when dereferenced. When this member is not present, its value + is assumed to be "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should + not change from occurrence to occurrence of the problem, + except for purposes of localization. If type is given and + other than "about:blank", this attribute shall also be + provided. A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of + the problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. The + HTTP status code ([RFC7231], Section 6) generated by the + origin server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of + the problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + -- GitLab From ad1de307d99f4c406d855205debd955500f7d164 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 11 Aug 2020 12:43:20 +0500 Subject: [PATCH 070/116] Added Test Cases for NFV-MANO Entity.robot --- .../NFV-MANO Entity.robot | 97 +++++ .../NFVMANOCimKeywords.robot | 74 ++++ .../environment/variables.txt | 23 ++ .../jsons/ManoConfigModificationRequest.json | 3 + .../schemas/ManoConfigModifications.json | 99 +++++ .../schemas/ManoEntity.json | 375 ++++++++++++++++++ .../schemas/ProblemDetails.schema.json | 1 + 7 files changed, 672 insertions(+) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/NFV-MANO Entity.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoConfigModifications.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ProblemDetails.schema.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFV-MANO Entity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFV-MANO Entity.robot new file mode 100644 index 000000000..eeaf33930 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFV-MANO Entity.robot @@ -0,0 +1,97 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST NFV-MANO entity - Method not implemented + [Documentation] Test ID: 8.3.4.1.1 + ... 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: + ... Reference: clause 5.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for NFV-MANO Entity + Check HTTP Response Status Code Is 405 + +GET NFV-MANO entity + [Documentation] Test ID: 8.3.4.1.2 + ... 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: + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO entity resource + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoEntity + +PUT NFV-MANO entity - Method not implemented + [Documentation] Test ID: 8.3.4.1.3 + ... 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: + ... Reference: clause 5.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for NFV-MANO Entity + Check HTTP Response Status Code Is 405 + +PATCH NFV-MANO entity + [Documentation] Test ID: 8.3.4.1.4 + ... Test title: PATCH NFV-MANO entity + ... Test objective: This method modifies the NFV-MANO entity resource + ... Pre-conditions: NFV-MANO entity resource is already created. + ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO entity is modified by the operation + Send Patch request for NFV-MANO Entity + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoConfigModifications + +PATCH NFV-MANO entity - Conflict + [Documentation] Test ID: 8.3.4.1.5 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO entity is not modified by the operation + Send Patch request for NFV-MANO Entity + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +PATCH NFV-MANO entity - PreCondition Failed + [Documentation] Test ID: 8.3.4.1.6 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The NFV-MANO entity is not modified by the operation + Send Patch request for NFV-MANO Entity + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +DELETE NFV-MANO entity - Method not implemented + [Documentation] Test ID: 8.3.4.1.7 + ... 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: + ... Reference: clause 5.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for NFV-MANO Entity + Check HTTP Response Status Code Is 405 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot new file mode 100644 index 000000000..e6a760bcc --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -0,0 +1,74 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary +Library OperatingSystem +Library BuiltIn +Library JSONLibrary +Library Collections +Library JSONSchemaLibrary schemas/ +Library Process + +*** Keywords *** +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + ${status}= Convert To Integer ${expected_status} + Should Be Equal ${response['status']} ${status} + Log Status code validated + +Check HTTP Response Header Contains + [Arguments] ${CONTENT_TYPE} + Should Contain ${response['headers']} ${CONTENT_TYPE} + Log Header is present + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + Should Contain ${response['headers']['Content-Type']} application/json + ${schema} = Catenate SEPARATOR= ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK + +Send Post request for NFV-MANO Entity + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO entity resource + Log Trying to get a NFV-MANO entity resource + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + 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}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/mano_entity + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/mano_entity + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch request for NFV-MANO Entity + log Trying to modify an NFV-MANO Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/ManoConfigModificationRequest.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Delete request for NFV-MANO Entity + Log Trying to perform a DELETE (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt new file mode 100644 index 000000000..f0ea01072 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -0,0 +1,23 @@ +*** Variables *** +${NFVMANOHOST} localhost +${NFVMANO_PORT} 8080 +${NFVMANO_SCHEMA} https + + +${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 +${NEG_AUTHORIZATION} Bearer negativetoken + +${CONTENT_TYPE_JSON} application/json +${ACCEPT_JSON} application/json +${CONTENT_TYPE_PATCH} application/merge-patch+json +${AUTH_USAGE} 1 +${FIELD_USAGE} 1 +${NFVMANO_CHECKS_NOTIF_ENDPOINT} 1 ## If true, during subscription, the FUT performs a get to the notification endpoint + +${NFVMANO_ALLOWS_DUPLICATE_SUBS} 1 + +${apiRoot} / +${apiMajorVersion} v1 +${apiName} nfvmanocim + +${response} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json new file mode 100644 index 000000000..eca04e508 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json @@ -0,0 +1,3 @@ +{ + "name": "NFV-MANO Entity" +} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoConfigModifications.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoConfigModifications.json new file mode 100644 index 000000000..7970b361e --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoConfigModifications.json @@ -0,0 +1,99 @@ +{ + "description": "This type represents attribute modifications that were performed on the \"NFV-MANO entity\" resource of the producer NFV-MANO functional entity. The attributes that can be included consist of those requested to be modified explicitly in the \"ManoConfigModificationRequest\" data structure. \n", + "type": "object", + "properties": { + "name": { + "description": "If present, this attribute signals modifications of the \"name\" attribute in \"ManoEntity\", as defined in clause 5.6.2.3\n", + "type": "string" + }, + "description": { + "description": "If present, this attribute signals modifications of the \"description\" attribute in \"ManoEntity\", as defined in clause 5.6.2.3.\n", + "type": "string" + }, + "clockSyncs": { + "description": "If present, this attribute signals modifications of the \"clockSyncs\" attribute in \"ManoEntityConfigurableParams\", as defined in clause 5.6.2.3.\n", + "type": "array", + "items": { + "description": "This type represents parameters for connecting to an NTP server. \n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "type": { + "description": "Type of clock synchronization.\nPermitted values:\n - NTP: For Network Time Protocol (NTP) based clock synchronization.\n - OTHER: For other types of clock synchronization.\n", + "type": "string", + "enum": [ + "NTP", + "OTHER" + ] + }, + "ntpServerInfo": { + "description": "Information for the NTP based clock synchronization. Shall be present if type = \"NTP\".\n", + "type": "object", + "properties": { + "ipAddress": { + "description": "An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that consists of groups of zero to four hexadecimal digits, separated by colons.\n", + "type": "string", + "format": "IP" + }, + "hostname": { + "description": "Indicates the hostname of the NTP server. \nNOTE:\tEither ipAddress or hostname shall be set, but not both at the same time.\n", + "type": "string" + } + } + }, + "otherClockSyncParams": { + "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" + } + }, + "required": [ + "id", + "type" + ] + } + }, + "clockSyncsDeleteIds": { + "description": "If present, this attribute signals modifications of certain entries in \"clockSyncs\" attribute in \"ManoEntityConfigurableParams\", as defined in clause 5.6.2.3.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "defaultLogCompileBySizeValue": { + "description": "Unsigned integer\n", + "type": "number" + }, + "defaultLogCompileByTimerValue": { + "description": "Unsigned integer\n", + "type": "number" + }, + "manoServiceModifications": { + "description": "If present, this attribute signals modifications of the \"manoServices\" attribute array in the \"ManoEntity\", as defined in clause 5.6.2.3.\n", + "type": "array", + "items": { + "type": "object", + "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": "If present, this attribute signals modification of the \"name\" attribute in the \"ManoService\".\n", + "type": "string" + }, + "description": { + "description": "If present, this attribute signals modification of the \"description\" attribute in the \"ManoService\".\n", + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + } + } \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.json new file mode 100644 index 000000000..388b9e00e --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.json @@ -0,0 +1,375 @@ +{ + "description": "This type represents an NFV-MANO functional entity.\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\tThe NFV-MANO functional entity is a VIM.\n", + "type": "string", + "enum": [ + "NFVO", + "VNFM", + "VIM" + ] + }, + "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": "The version of the software of the NFV-MANO functional entity. $ref: \"../components/SOL009_schemas.yaml#/components/schemas/Version\"\n" + }, + "manoEntityComponents": { + "description": "The deployed NFV-MANO functional entity components which realize the NFV-MANO functional entity. \nNOTE:\tIt is optional for the API producer to support the \"manoEntityComponents\" attribute.\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", + "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" + } + } + }, + "required": [ + "id" + ] + } + }, + "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.\n", + "type": "object", + "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. \nNOTE:\tA cardinality greater than one supports having different interface versions or apiEndpoints to be used for accessing the same instance of a NFV-MANO service.\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" + ] + } + }, + "required": [ + "id", + "name", + "description", + "manoServiceInterfaceIds", + "_links" + ] + } + }, + "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. \n", + "type": "object", + "properties": { + "maxOnboardedNsdNum": { + "description": "Maximum number of NSDs that can be on-boarded on the NFVO. \nNOTE: If this attribute is not present, the value of this parameter is undefined.\n", + "type": "integer" + }, + "maxOnboardedVnfPkgNum": { + "description": "Maximum number of VNF Packages that can be on-boarded on the NFVO. \nNOTE: If this attribute is not present, the value of this parameter is undefined.\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" + ] + } + }, + "required": [ + "supportedVnfdFormats", + "supportedNsdFormats" + ] + }, + "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.\n", + "type": "object", + "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 + } + }, + "required": [ + "resoruceMgmtModeSupport", + "managedVnfInstanceInfos", + "supportedVnfdFormats" + ] + }, + "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.\n", + "type": "object" + }, + "_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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ProblemDetails.schema.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ProblemDetails.schema.json new file mode 100644 index 000000000..2af3ef9b3 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ProblemDetails.schema.json @@ -0,0 +1 @@ +{ "description": "The definition of the general \"ProblemDetails\" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the general framework defined in IETF RFC 7807 [19], the \"status\" and \"detail\" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about an error. IETF RFC 7807 [19] foresees extensibility of the \"ProblemDetails\" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see IETF RFC 7807 [19].\n", "type": "object", "required": [ "status", "detail" ], "properties": { "type": { "description": "A URI reference according to IETF RFC 3986 [5] that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be \"about:blank\".\n", "type": "string", "format": "URI" }, "title": { "description": "A short, human-readable summary of the problem type. It should not change from occurrence to occurrence of the problem, except for purposes of localization. If type is given and other than \"about:blank\", this attribute shall also be provided. A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).\n", "type": "string" }, "status": { "description": "The HTTP status code for this occurrence of the problem. The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.\n", "type": "integer" }, "detail": { "description": "A human-readable explanation specific to this occurrence of the problem.\n", "type": "string" }, "instance": { "description": "A URI reference that identifies the specific occurrence of the problem. It may yield further information if dereferenced.\n", "type": "string", "format": "URI" } }} \ No newline at end of file -- GitLab From dde2ecf32543cb7330552997dcf75532659eff7b Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 11 Aug 2020 14:21:59 +0500 Subject: [PATCH 071/116] Added Test Cases for ChangeNFVMANOEntityStateTask.robot --- .../ChangeNFVMANOEntityStateTask.robot | 82 +++++++++++++++++++ .../NFVMANOCimKeywords.robot | 47 +++++++++++ ...-MANO Entity.robot => NFVMANOEntity.robot} | 2 +- 3 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot rename SOL009/NFVManoConfigurationAndInformationManagement-API/{NFV-MANO Entity.robot => NFVMANOEntity.robot} (97%) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot new file mode 100644 index 000000000..bc5062631 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -0,0 +1,82 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary +*** Test Cases *** +POST NFV-MANO functional entity application state change + [Documentation] Test ID: 8.3.4.2.1 + ... 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: + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for NFV-MANO functional entity application state change + Check HTTP Response Status Code Is 202 + Check Operation Occurrence Id + +POST NFV-MANO functional entity application state change - Conflict + [Documentation] Test ID: 8.3.4.2.2 + ... 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 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: + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for NFV-MANO functional entity application state change + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET NFV-MANO functional entity application state change - Method not implemented + [Documentation] Test ID: 8.3.4.2.3 + ... 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: + ... Reference: clause 5.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Get request for NFV-MANO functional entity application state change + Check HTTP Response Status Code Is 405 + +PUT NFV-MANO functional entity application state change - Method not implemented + [Documentation] Test ID: 8.3.4.2.4 + ... 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: + ... Reference: clause 5.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for NFV-MANO functional entity application state change + Check HTTP Response Status Code Is 405 + +PATCH NFV-MANO functional entity application state change - Method not implemented + [Documentation] Test ID: 8.3.4.2.5 + ... 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: + ... Reference: clause 5.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Patch request for NFV-MANO functional entity application state change + Check HTTP Response Status Code Is 405 + +DELETE NFV-MANO functional entity application state change - Method not implemented + [Documentation] Test ID: 8.3.4.2.6 + ... 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: + ... Reference: clause 5.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for NFV-MANO functional entity application state change + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index e6a760bcc..8eed9958e 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -27,6 +27,10 @@ Check HTTP Response Body Json Schema Is ${schema} = Catenate SEPARATOR= ${input} .schema.json Validate Json ${schema} ${response['body']} Log Json Schema Validation OK + +Check Operation Occurrence Id + ${OpOccId}= Get Value From Json ${response['headers']} $..Location + Should Not Be Empty ${OpOccId} Send Post request for NFV-MANO Entity Log Trying to perform a POST (method should not be implemented) @@ -71,4 +75,47 @@ Send Delete request for NFV-MANO Entity Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post request for NFV-MANO functional entity application state change + Log Trying to perform a POST for NFV-MANO functional entity application state change + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Get request for NFV-MANO functional entity application state change + Log Trying to perform a GET (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Put request for NFV-MANO functional entity application state change + Log Trying to perform a PUT (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/mano_entity/change_state + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/log_jobs/mano_entity/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch request for NFV-MANO functional entity application state change + Log Trying to perform a PATCH (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for NFV-MANO functional entity application state change + Log Trying to perform a DELETE (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state + ${output}= Output response Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFV-MANO Entity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot similarity index 97% rename from SOL009/NFVManoConfigurationAndInformationManagement-API/NFV-MANO Entity.robot rename to SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index eeaf33930..b6c85e15f 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFV-MANO Entity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -94,4 +94,4 @@ DELETE NFV-MANO entity - Method not implemented ... Applicability: none ... Post-Conditions: Send Delete request for NFV-MANO Entity - Check HTTP Response Status Code Is 405 + Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From b19c3841d23e6a870168dd8be7f018356c82d51f Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 12 Aug 2020 09:27:03 +0500 Subject: [PATCH 072/116] Added Test Cases for ChangeStateOpperationOccurance.robot --- .../ChangeStateOperationOccurance.robot | 188 ++++++++++++++++++ .../NFVMANOCimKeywords.robot | 96 ++++++++- .../environment/variables.txt | 7 +- .../schemas/ChangeStateOpOcc.json | 85 ++++++++ .../schemas/ChangeStateOpOccs.json | 87 ++++++++ 5 files changed, 461 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOcc.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOccs.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot new file mode 100644 index 000000000..323e678d4 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot @@ -0,0 +1,188 @@ +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.3.1 + ... Test title: POST Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that POST method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for Change State Operation Occurance + Check HTTP Response Status Code Is 405 + +GET Change State Operation Occurance + [Documentation] Test ID: 8.3.1.3.2 + ... Test title: GET Change State Operation Occurance + ... Test objective: The objective is to query status information about multiple change state operation occurrences. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOccs + +GET Change State Operation Occurance - invalid attribute-based filter + [Documentation] Test ID: 8.3.1.3.3 + ... Test title: GET Change State Operation Occurance - invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc with invalid filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Change State Operation Occurance - invalid attribute selector + [Documentation] Test ID: 8.3.1.3.4 + ... Test title: GET Change State Operation Occurance - invalid attribute selector + ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc with invalid selector + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Change State Operation Occurance - Bad Request Response too Big + [Documentation] Test ID: 8.3.1.3.5 + ... Test title: GET Change State Operation Occurance - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Change State Operation Occurance with attribute-based filter + [Documentation] Test ID: 8.3.1.3.6 + ... Test title: GET Change State Operation Occurance with attribute-based filter + ... Test objective: The objective is to query status information about multiple change state operation occurrences with attribute filters + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc with filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc + +GET Change State Operation Occurance with "all_fields" attribute selector + [Documentation] Test ID: 8.3.1.3.7 + ... Test title: GET Change State Operation Occurance with "all_fields" attribute selector + ... Test objective: The objective is to retrieve Change State Operation Occurance with "all_fields" attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc + +GET Change State Operation Occurance with "exclude_default" attribute selector + [Documentation] Test ID: 8.3.1.3.8 + ... Test title: GET Change State Operation Occurance with "exclude_default" attribute selector + ... Test objective: The objective is to retrieve Change State Operation Occurance with "exclude_default" attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc + + +GET Change State Operation Occurance with "fields" attribute selector + [Documentation] Test ID: 8.3.1.3.9 + ... Test title: GET Change State Operation Occurance with "fields" attribute selector + ... Test objective: The objective is to retrieve Change State Operation Occurance with fields attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc with fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc + +GET Change State Operation Occurance with "exclude_fields" attribute selector + [Documentation] Test ID: 8.3.1.3.10 + ... Test title: GET Change State Operation Occurance with "exclude_fields" attribute selector + ... Test objective: The objective is to retrieve Change State Operation Occurance with "exclude_fields" attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: none + Get Change State OpOcc with exclude_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc + +GET Change State Operation Occurance with Paged Response + [Documentation] Test ID: 8.3.1.3.11 + ... Test title: GET Change State Operation Occurance with Paged Response + ... Test objective: The objective is to query Change State Operation Occurance to get Paged Response. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Change State OpOcc + Check HTTP Response Status Code Is 200 + Check LINK in Header + +PUT Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.3.12 + ... Test title: PUT Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for Change State Operation Occurance + Check HTTP Response Status Code Is 405 + +PATCH Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.3.13 + ... Test title: PATCH Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Patch request for Change State Operation Occurance + Check HTTP Response Status Code Is 405 + +DELETE Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.3.14 + ... Test title: DELETE Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for Change State Operation Occurance + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 8eed9958e..5e3d67847 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -118,4 +118,98 @@ Send Delete request for NFV-MANO functional entity application state change Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state ${output}= Output response - Set Suite Variable ${response} ${output} \ No newline at end of file + Set Suite Variable ${response} ${output} + +Send Post request for Change State Operation Occurance + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Change State OpOcc + Log Query to GET information about multiple change state operation occurrences. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Change State OpOcc with invalid filter + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?attribute_not_exist=some_value + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Change State OpOcc with invalid selector + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?fields=wrong_field + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Change State OpOcc with filter + Log Query information about multiple change state operation occurrences with attribute filters. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?${filter}=${filter_value} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Change State OpOcc with all_fields attribute selector + Log Queries information about multiple change state operation occurrences, using all_fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Change State OpOcc with fields attribute selector + Log Queries information about multiple change state operation occurrences, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Change State OpOcc with exclude_fields attribute selector + Log Queries information about multiple change state operation occurrences, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?exclude_fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check LINK in Header + ${linkURL}= Get Value From Json ${response['headers']} $..Link + Should Not Be Empty ${linkURL} + +Send PUT request for Change State Operation Occurance + 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":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send PATCH request for Change State Operation Occurance + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send DELETE request for Change State Operation Occurance + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index f0ea01072..f94eed9d7 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -20,4 +20,9 @@ ${apiRoot} / ${apiMajorVersion} v1 ${apiName} nfvmanocim -${response} \ No newline at end of file +${response} + +${filter} +${filter_value} + +${fields} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOcc.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOcc.json new file mode 100644 index 000000000..f9238e4d2 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOcc.json @@ -0,0 +1,85 @@ +{ + "description": "This type represents a Change state operation occurrence. \n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "operationState": { + "description": "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n", + "type": "string", + "enum": [ + "PROCESSING", + "COMPLETED", + "FAILED" + ] + }, + "stateEnteredTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "startTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "managedObjectRef": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "changeOperationalStateRequest": { + "description": "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n", + "type": "string", + "enum": [ + "START", + "STOP", + "RESTART" + ] + }, + "changeAdministrativeStateRequest": { + "description": "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n", + "type": "string", + "enum": [ + "LOCK", + "UNLOCK" + ] + }, + "operationParams": { + "description": "Input parameters of the change state operation. This attribute shall be formatted according to the request data type of the related change state operation. \nThe following mapping between operationType and the data type of this attribute shall apply:\n - CHANGE_STATE: ChangeStateRequest\n \nThis attribute shall be present if this data type is returned in a response to reading an individual resource, and may be present according to the chosen attribute selector parameter if this data type is returned in a response to a query of a container resource.\n" + } + }, + "required": [ + "id", + "operationState", + "stateEnteredTime", + "startTime", + "managedObjectRef" + ] + } \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOccs.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOccs.json new file mode 100644 index 000000000..7c203be47 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateOpOccs.json @@ -0,0 +1,87 @@ +{ "type": "array", + "items": { + "description": "This type represents a Change state operation occurrence. \n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "operationState": { + "description": "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n", + "type": "string", + "enum": [ + "PROCESSING", + "COMPLETED", + "FAILED" + ] + }, + "stateEnteredTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "startTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "managedObjectRef": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "changeOperationalStateRequest": { + "description": "The enumeration ChangeOperationalStateEnumType defines permitted values for the change state operation. The ChangeOperationalStateEnumType shall comply with the provisions:\n - START\tTo start the managed entity.\n - STOP\tTo stop the managed entity.\n - RESTART\tTo stop and start again the managed entity.\n", + "type": "string", + "enum": [ + "START", + "STOP", + "RESTART" + ] + }, + "changeAdministrativeStateRequest": { + "description": "The enumeration ChangeAdministrativeStateEnumType defines permitted values for the change of administrative state operation. The ChangeAdministrativeStateEnumType shall comply with the provisions:\n - LOCK\tTo lock the managed entity.\n - UNLOCK\tTo unlock the managed entity.\n", + "type": "string", + "enum": [ + "LOCK", + "UNLOCK" + ] + }, + "operationParams": { + "description": "Input parameters of the change state operation. This attribute shall be formatted according to the request data type of the related change state operation. \nThe following mapping between operationType and the data type of this attribute shall apply:\n - CHANGE_STATE: ChangeStateRequest\n \nThis attribute shall be present if this data type is returned in a response to reading an individual resource, and may be present according to the chosen attribute selector parameter if this data type is returned in a response to a query of a container resource.\n" + } + }, + "required": [ + "id", + "operationState", + "stateEnteredTime", + "startTime", + "managedObjectRef" + ] + } + } \ No newline at end of file -- GitLab From 0947b0d355b27d1c8b816824b068a8f7fd9ef2f9 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 12 Aug 2020 09:29:14 +0500 Subject: [PATCH 073/116] fixed TID mismatch in NFVMANOEntity.robot --- .../NFVMANOEntity.robot | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index b6c85e15f..ba7ee2ec0 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -9,7 +9,7 @@ Library MockServerLibrary *** Test Cases *** POST NFV-MANO entity - Method not implemented - [Documentation] Test ID: 8.3.4.1.1 + [Documentation] Test ID: 8.3.1.1.1 ... 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: @@ -21,7 +21,7 @@ POST NFV-MANO entity - Method not implemented Check HTTP Response Status Code Is 405 GET NFV-MANO entity - [Documentation] Test ID: 8.3.4.1.2 + [Documentation] Test ID: 8.3.1.1.2 ... 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: @@ -34,7 +34,7 @@ GET NFV-MANO entity Check HTTP Response Body Json Schema Is ManoEntity PUT NFV-MANO entity - Method not implemented - [Documentation] Test ID: 8.3.4.1.3 + [Documentation] Test ID: 8.3.1.1.3 ... 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: @@ -46,7 +46,7 @@ PUT NFV-MANO entity - Method not implemented Check HTTP Response Status Code Is 405 PATCH NFV-MANO entity - [Documentation] Test ID: 8.3.4.1.4 + [Documentation] Test ID: 8.3.1.1.4 ... Test title: PATCH NFV-MANO entity ... Test objective: This method modifies the NFV-MANO entity resource ... Pre-conditions: NFV-MANO entity resource is already created. @@ -59,7 +59,7 @@ PATCH NFV-MANO entity Check HTTP Response Body Json Schema Is ManoConfigModifications PATCH NFV-MANO entity - Conflict - [Documentation] Test ID: 8.3.4.1.5 + [Documentation] Test ID: 8.3.1.1.5 ... 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. @@ -72,7 +72,7 @@ PATCH NFV-MANO entity - Conflict Check HTTP Response Body Json Schema Is ProblemDetails PATCH NFV-MANO entity - PreCondition Failed - [Documentation] Test ID: 8.3.4.1.6 + [Documentation] Test ID: 8.3.1.1.6 ... 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. @@ -85,7 +85,7 @@ PATCH NFV-MANO entity - PreCondition Failed Check HTTP Response Body Json Schema Is ProblemDetails DELETE NFV-MANO entity - Method not implemented - [Documentation] Test ID: 8.3.4.1.7 + [Documentation] Test ID: 8.3.1.1.7 ... 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: -- GitLab From 26c2a5be16d5e8cc61f2103ad5b85e11c0f11e72 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 12 Aug 2020 09:30:02 +0500 Subject: [PATCH 074/116] fixed TID mismatch in ChangeNFVMANOEntityStateTask.robot --- .../ChangeNFVMANOEntityStateTask.robot | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index bc5062631..c1914e7c8 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -8,7 +8,7 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** POST NFV-MANO functional entity application state change - [Documentation] Test ID: 8.3.4.2.1 + [Documentation] Test ID: 8.3.1.2.1 ... 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: @@ -21,7 +21,7 @@ POST NFV-MANO functional entity application state change Check Operation Occurrence Id POST NFV-MANO functional entity application state change - Conflict - [Documentation] Test ID: 8.3.4.2.2 + [Documentation] Test ID: 8.3.1.2.2 ... 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 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: @@ -34,7 +34,7 @@ POST NFV-MANO functional entity application state change - Conflict Check HTTP Response Body Json Schema Is ProblemDetails GET NFV-MANO functional entity application state change - Method not implemented - [Documentation] Test ID: 8.3.4.2.3 + [Documentation] Test ID: 8.3.1.2.3 ... 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: @@ -46,7 +46,7 @@ GET NFV-MANO functional entity application state change - Method not implemented Check HTTP Response Status Code Is 405 PUT NFV-MANO functional entity application state change - Method not implemented - [Documentation] Test ID: 8.3.4.2.4 + [Documentation] Test ID: 8.3.1.2.4 ... 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: @@ -58,7 +58,7 @@ PUT NFV-MANO functional entity application state change - Method not implemented Check HTTP Response Status Code Is 405 PATCH NFV-MANO functional entity application state change - Method not implemented - [Documentation] Test ID: 8.3.4.2.5 + [Documentation] Test ID: 8.3.1.2.5 ... 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: @@ -70,7 +70,7 @@ PATCH NFV-MANO functional entity application state change - Method not implement Check HTTP Response Status Code Is 405 DELETE NFV-MANO functional entity application state change - Method not implemented - [Documentation] Test ID: 8.3.4.2.6 + [Documentation] Test ID: 8.3.1.2.6 ... 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: -- GitLab From e2bbf4fcbdf75e36d4b2690c55c51848186e9988 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 12 Aug 2020 11:04:14 +0500 Subject: [PATCH 075/116] Added Test Cases for IndividualChangeStateOpperationOccurance.robot --- ...vidualStateChangeOpperationOccurance.robot | 70 +++++++++++++++++++ .../NFVMANOCimKeywords.robot | 41 +++++++++++ .../environment/variables.txt | 4 +- 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot new file mode 100644 index 000000000..765b7b866 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot @@ -0,0 +1,70 @@ +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST Individual Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.4.1 + ... Test title: POST Individual Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that POST method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for Individual Change State Operation Occurance + Check HTTP Response Status Code Is 405 + +GET Individual Change State Operation Occurance + [Documentation] Test ID: 8.3.1.4.2 + ... Test title: GET Individual Change State Operation Occurance + ... Test objective: The objective is to query status information about Individual change state operation occurrences. + ... Pre-conditions: + ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Individual Change State OpOcc + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc + +PUT Individual Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.4.3 + ... Test title: PUT Individual Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.9.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for Individual Change State Operation Occurance + Check HTTP Response Status Code Is 405 + +PATCH Individual Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.4.4 + ... Test title: PATCH Individual Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.9.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Patch request for Individual Change State Operation Occurance + Check HTTP Response Status Code Is 405 + +DELETE Individual Change State Operation Occurance - Method not implemented + [Documentation] Test ID: 8.3.1.4.5 + ... Test title: DELETE Individual Change State Operation Occurance - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.9.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for Individual Change State Operation Occurance + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 5e3d67847..2f849184d 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -213,3 +213,44 @@ Send DELETE request for Change State Operation Occurance Delete ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} + +Send Post request for Individual Change State Operation Occurance + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Individual Change State OpOcc + Log Query to GET information about individual change state operation occurrences. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + 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 Occurance + 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":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send PATCH request for Individual Change State Operation Occurance + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send DELETE request for Individual Change State Operation Occurance + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index f94eed9d7..c2f296e36 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -25,4 +25,6 @@ ${response} ${filter} ${filter_value} -${fields} \ No newline at end of file +${fields} + +${changeStateOpOccId} \ No newline at end of file -- GitLab From 7d8320f70a38e10ca0b5bc9d13f499e405c6325d Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 12 Aug 2020 12:46:12 +0500 Subject: [PATCH 076/116] Added Test Cases for NFVMANOServiceInterface.robot --- .../NFVMANOCimKeywords.robot | 90 +++++++++ .../NFVMANOServiceInterface.robot | 188 ++++++++++++++++++ 2 files changed, 278 insertions(+) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 2f849184d..461fa1fad 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -252,5 +252,95 @@ Send DELETE request for Individual Change State Operation Occurance Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Post request for NFV-MANO Serive Interface + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get NFV-MANO Serive Interface + Log Query to GET information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + 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 Serive Interface with invalid filter + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?attribute_not_exist=some_value + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get NFV-MANO Serive Interface with invalid selector + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?fields=wrong_field + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get NFV-MANO Serive Interface with filter + Log Query information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity with attribute filters. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?${filter}=${filter_value} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get NFV-MANO Serive Interface with all_fields attribute selector + Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using all_fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get NFV-MANO Serive Interface with fields attribute selector + Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get NFV-MANO Serive Interface with exclude_fields attribute selector + Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?exclude_fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PUT request for NFV-MANO Serive Interface + 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":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send PATCH request for NFV-MANO Serive Interface + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send DELETE request for NFV-MANO Serive Interface + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot new file mode 100644 index 000000000..46fcf9102 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot @@ -0,0 +1,188 @@ +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST NFV-MANO Serive Interface - Method not implemented + [Documentation] Test ID: 8.3.1.5.1 + ... Test title: POST NFV-MANO Serive Interface - Method not implemented + ... Test objective: The objective is to test that POST method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for NFV-MANO Serive Interface + Check HTTP Response Status Code Is 405 + +GET NFV-MANO Serive Interface + [Documentation] Test ID: 8.3.1.5.2 + ... Test title: GET NFV-MANO Serive Interface + ... Test objective: The objective is to query status information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + +GET NFV-MANO Serive Interface - invalid attribute-based filter + [Documentation] Test ID: 8.3.1.5.3 + ... Test title: GET NFV-MANO Serive Interface - invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface with invalid filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET NFV-MANO Serive Interface - invalid attribute selector + [Documentation] Test ID: 8.3.1.5.4 + ... Test title: GET NFV-MANO Serive Interface - invalid attribute selector + ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface with invalid selector + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET NFV-MANO Serive Interface - Bad Request Response too Big + [Documentation] Test ID: 8.3.1.5.5 + ... Test title: GET NFV-MANO Serive Interface - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET NFV-MANO Serive Interface with attribute-based filter + [Documentation] Test ID: 8.3.1.5.6 + ... Test title: GET NFV-MANO Serive Interface 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 + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface with filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + +GET NFV-MANO Serive Interface with "all_fields" attribute selector + [Documentation] Test ID: 8.3.1.5.7 + ... Test title: GET NFV-MANO Serive Interface with "all_fields" attribute selector + ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "all_fields" attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + +GET NFV-MANO Serive Interface with "exclude_default" attribute selector + [Documentation] Test ID: 8.3.1.5.8 + ... Test title: GET NFV-MANO Serive Interface with "exclude_default" attribute selector + ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "exclude_default" attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + + +GET NFV-MANO Serive Interface with "fields" attribute selector + [Documentation] Test ID: 8.3.1.5.9 + ... Test title: GET NFV-MANO Serive Interface with "fields" attribute selector + ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with fields attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface with fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + +GET NFV-MANO Serive Interface with "exclude_fields" attribute selector + [Documentation] Test ID: 8.3.1.5.10 + ... Test title: GET NFV-MANO Serive Interface with "exclude_fields" attribute selector + ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "exclude_fields" attribute selector + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: none + Get NFV-MANO Serive Interface with exclude_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + +GET NFV-MANO Serive Interface with Paged Response + [Documentation] Test ID: 8.3.1.5.11 + ... Test title: GET NFV-MANO Serive Interface with Paged Response + ... Test objective: The objective is to query NFV-MANO Serive Interface to get Paged Response. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get NFV-MANO Serive Interface + Check HTTP Response Status Code Is 200 + Check LINK in Header + +PUT NFV-MANO Serive Interface - Method not implemented + [Documentation] Test ID: 8.3.1.5.12 + ... Test title: PUT NFV-MANO Serive Interface - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for NFV-MANO Serive Interface + Check HTTP Response Status Code Is 405 + +PATCH NFV-MANO Serive Interface - Method not implemented + [Documentation] Test ID: 8.3.1.5.13 + ... Test title: PATCH NFV-MANO Serive Interface - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Patch request for NFV-MANO Serive Interface + Check HTTP Response Status Code Is 405 + +DELETE NFV-MANO Serive Interface - Method not implemented + [Documentation] Test ID: 8.3.1.5.14 + ... Test title: DELETE NFV-MANO Serive Interface - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.10.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for NFV-MANO Serive Interface + Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From 71a987da7cbef9b3aa66e444384be5ae6fd526c5 Mon Sep 17 00:00:00 2001 From: uihassan Date: Wed, 12 Aug 2020 17:00:24 +0500 Subject: [PATCH 077/116] Added Test Cases for IndividualNFVMANOServiceInterface.robot --- .../IndividualNFVMANOServiceInterface.robot | 97 ++++++++ .../NFVMANOCimKeywords.robot | 42 ++++ .../environment/variables.txt | 4 +- ...noServiceInterfaceModificationRequest.json | 3 + .../schemas/ManoServiceInterface.json | 215 +++++++++++++++++ .../ManoServiceInterfaceModifications.json | 105 +++++++++ .../schemas/ManoServiceInterfaces.json | 218 ++++++++++++++++++ 7 files changed, 683 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoServiceInterfaceModificationRequest.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterface.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaceModifications.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaces.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot new file mode 100644 index 000000000..f5815448d --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot @@ -0,0 +1,97 @@ +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST Individual NFV-MANO Serive Interface - Method not implemented + [Documentation] Test ID: 8.3.1.6.1 + ... Test title: POST Individual NFV-MANO Serive Interface - Method not implemented + ... Test objective: The objective is to test that POST method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.11.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for Individual NFV-MANO Serive Interface + Check HTTP Response Status Code Is 405 + +GET Individual NFV-MANO Serive Interface + [Documentation] Test ID: 8.3.1.6.2 + ... Test title: GET Individual NFV-MANO Serive 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. + ... Pre-conditions: + ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Individual NFV-MANO Serive Interface + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterface + +PUT Individual NFV-MANO Serive Interface - Method not implemented + [Documentation] Test ID: 8.3.1.6.3 + ... Test title: PUT Individual NFV-MANO Serive Interface - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.11.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for Individual NFV-MANO Serive Interface + Check HTTP Response Status Code Is 405 + +PATCH Individual NFV-MANO Serive Interface + [Documentation] Test ID: 8.3.1.6.4 + ... Test title: PATCH Individual NFV-MANO Serive Interface + ... Test objective: This method modifies the Individual NFV-MANO Serive Interface resource + ... Pre-conditions: Individual NFV-MANO Serive Interface resource is already created. + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Individual NFV-MANO Serive Interface is modified by the operation + Send Patch request for Individual NFV-MANO Serive Interface + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaceModifications + +PATCH Individual NFV-MANO Serive Interface - Conflict + [Documentation] Test ID: 8.3.1.6.5 + ... Test title: PATCH Individual NFV-MANO Serive Interface - Conflict + ... Test objective: The objective is to test that the modification of the Individual NFV-MANO Serive Interface resource failed due to a conflict with the state of the Individual NFV-MANO Serive Interface resource and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: Individual NFV-MANO Serive Interface resource is already created. + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Individual NFV-MANO Serive Interface is not modified by the operation + Send Patch request for Individual NFV-MANO Serive Interface + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +PATCH Individual NFV-MANO Serive Interface - PreCondition Failed + [Documentation] Test ID: 8.3.1.6.6 + ... Test title: PATCH Individual NFV-MANO Serive Interface - PreCondition Failed + ... Test objective: The objective is to test that the modification of the Individual NFV-MANO Serive 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 Serive Interface resource is already created. + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Individual NFV-MANO Serive Interface is not modified by the operation + Send Patch request for Individual NFV-MANO Serive Interface + Check HTTP Response Status Code Is 412 + Check HTTP Response Body Json Schema Is ProblemDetails + +DELETE Individual NFV-MANO Serive Interface - Method not implemented + [Documentation] Test ID: 8.3.1.6.7 + ... Test title: DELETE Individual NFV-MANO Serive Interface - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.11.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for Individual NFV-MANO Serive Interface + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 461fa1fad..b5479c3f8 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -342,5 +342,47 @@ Send DELETE request for NFV-MANO Serive Interface Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Post request for Individual NFV-MANO Serive Interface + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Individual NFV-MANO Serive Interface + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Put request for Individual NFV-MANO Serive Interface + 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":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Patch request for Individual NFV-MANO Serive Interface + log Trying to modify an NFV-MANO Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${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 Serive Interface + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index c2f296e36..709f9421e 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -27,4 +27,6 @@ ${filter_value} ${fields} -${changeStateOpOccId} \ No newline at end of file +${changeStateOpOccId} + +${manoServiceInterfaceId} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoServiceInterfaceModificationRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoServiceInterfaceModificationRequest.json new file mode 100644 index 000000000..1b080e7cd --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoServiceInterfaceModificationRequest.json @@ -0,0 +1,3 @@ +{ + "name": "ManoServiceInterfaceModificationRequest" +} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterface.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterface.json new file mode 100644 index 000000000..16b7cc3fe --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterface.json @@ -0,0 +1,215 @@ +{ + "description": "This type represents an individual NFV-MANO service interface produced by an NFV-MANO functional entity. \n", + "type": "object", + "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 functional entity interface.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "type": { + "description": "Type of the NFV-MANO service interface produced 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" + }, + "providerSpecificApiVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiEndpoint": { + "description": "Exposed API endpoint of the interface.\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" + ] + }, + "maxConcurrentIntOpNumber": { + "description": "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n", + "type": "integer" + }, + "supportedOperations": { + "description": "Information about supported operations of this interface.\n", + "type": "array", + "items": { + "type": "object", + "properties": { + "operationName": { + "description": "Name of the operation supported on the interface.\n", + "type": "string" + }, + "maxConcurrentOpNumber": { + "description": "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n", + "type": "integer" + } + }, + "required": [ + "operationName" + ] + }, + "minItems": 1 + }, + "interfaceState": { + "description": "State of the NFV-MANO service interface.\n", + "properties": { + "operationalState": { + "description": "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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", + "type": "string", + "enum": [ + "STARTED", + "STOPPED", + "STOPPING", + "STARTING" + ] + }, + "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" + ] + } + }, + "required": [ + "operationalState", + "administrativeState", + "usageState" + ] + }, + "securityInfo": { + "description": "This type represents security related information of an NFV-MANO service interface produced by an NFV-MANO functional entity. \n", + "type": "object", + "properties": { + "authType": { + "description": "Type of API request authorization to be used by the API producer.\nThe support of authorization methods for the API producer is specified in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values:\n - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246.\n - OAUTH2: Using access token, as defined by the OAuth 2.0 specification \n in IETF RFC 6749. \n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "TLS_TUNNEL", + "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. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "properties": { + "webFingerHost": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "webFingerHost" + ] + }, + "providedConfiguration": { + "description": "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "properties": { + "authServerId": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "authServerId" + ] + }, + "tlsCipherSuites": { + "description": "List of cipher suites that shall be declared as supported by the API producer 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 + } + }, + "required": [ + "providedConfiguration", + "tlsCipherSuites" + ] + }, + "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 producer when performing the SSL or TLS negotiation with the API client. Valid values of cipher suites are defined in IETF RFC 8447.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": [ + "tlsTunnelCipherSuites" + ] + } + }, + "required": [ + "authType", + "oauthServerInfo" + ] + }, + "metadata": { + "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" + } + }, + "required": [ + "id", + "name", + "type", + "standardVersion", + "providerSpecificApiVersion", + "apiVersion", + "apiEndpoint", + "supportedOperations", + "interfaceState" + ] + } \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaceModifications.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaceModifications.json new file mode 100644 index 000000000..080fc11f2 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaceModifications.json @@ -0,0 +1,105 @@ +{ + "description": "This type represents attribute modifications that were performed on an Individual NFV-MANO service interface\" resource. The attributes that can be included consist of those requested to be modified explicitly in the \"ManoServiceInterfaceModificationRequest\" data structure. If applicable, additional attributes of the \"ManoServiceInterface\" data structure that were modified implicitly shall also be provided. \n", + "type": "object", + "properties": { + "name": { + "description": "If present, this attribute signals modifications of the \"name\" attribute in \"ManoServiceInterface\", as defined in clause 5.6.2.11.\n", + "type": "string" + }, + "apiRoot": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "apiUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "securityInfo": { + "description": "This type represents security related information of an NFV-MANO service interface produced by an NFV-MANO functional entity. \n", + "type": "object", + "properties": { + "authType": { + "description": "Type of API request authorization to be used by the API producer.\nThe support of authorization methods for the API producer is specified in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values:\n - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246.\n - OAUTH2: Using access token, as defined by the OAuth 2.0 specification \n in IETF RFC 6749. \n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "TLS_TUNNEL", + "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. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "properties": { + "webFingerHost": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "webFingerHost" + ] + }, + "providedConfiguration": { + "description": "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "properties": { + "authServerId": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "authServerId" + ] + }, + "tlsCipherSuites": { + "description": "List of cipher suites that shall be declared as supported by the API producer 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 + } + }, + "required": [ + "providedConfiguration", + "tlsCipherSuites" + ] + }, + "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 producer when performing the SSL or TLS negotiation with the API client. Valid values of cipher suites are defined in IETF RFC 8447.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": [ + "tlsTunnelCipherSuites" + ] + } + }, + "required": [ + "authType", + "oauthServerInfo" + ] + }, + "metadata": { + "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" + } + } + } \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaces.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaces.json new file mode 100644 index 000000000..ad71446bf --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoServiceInterfaces.json @@ -0,0 +1,218 @@ +{ "type": "array", + "items": { + "description": "This type represents an individual NFV-MANO service interface produced by an NFV-MANO functional entity. \n", + "type": "object", + "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 functional entity interface.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "type": { + "description": "Type of the NFV-MANO service interface produced 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" + }, + "providerSpecificApiVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiEndpoint": { + "description": "Exposed API endpoint of the interface.\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" + ] + }, + "maxConcurrentIntOpNumber": { + "description": "Maximum number of concurrent operation requests supported on this interface. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n", + "type": "integer" + }, + "supportedOperations": { + "description": "Information about supported operations of this interface.\n", + "type": "array", + "items": { + "type": "object", + "properties": { + "operationName": { + "description": "Name of the operation supported on the interface.\n", + "type": "string" + }, + "maxConcurrentOpNumber": { + "description": "Maximum number of concurrent requests supported by the interface operation. \nNOTE:\tIf this attribute is not present, the value of this parameter is undefined. Overload is handled by the error handling schemes defined by the applicable API specification.\n", + "type": "integer" + } + }, + "required": [ + "operationName" + ] + }, + "minItems": 1 + }, + "interfaceState": { + "description": "State of the NFV-MANO service interface.\n", + "properties": { + "operationalState": { + "description": "The enumeration InterfaceOperationalStateEnumType defines values representing the operational state of an NFV-MANO service interface type of managed entity. The InterfaceOperationalStateEnumType 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", + "type": "string", + "enum": [ + "STARTED", + "STOPPED", + "STOPPING", + "STARTING" + ] + }, + "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" + ] + } + }, + "required": [ + "operationalState", + "administrativeState", + "usageState" + ] + }, + "securityInfo": { + "description": "This type represents security related information of an NFV-MANO service interface produced by an NFV-MANO functional entity. \n", + "type": "object", + "properties": { + "authType": { + "description": "Type of API request authorization to be used by the API producer.\nThe support of authorization methods for the API producer is specified in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values:\n - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246.\n - OAUTH2: Using access token, as defined by the OAuth 2.0 specification \n in IETF RFC 6749. \n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "TLS_TUNNEL", + "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. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "properties": { + "webFingerHost": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "webFingerHost" + ] + }, + "providedConfiguration": { + "description": "Configuration data used to setup the authorization server identifier. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "properties": { + "authServerId": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "authServerId" + ] + }, + "tlsCipherSuites": { + "description": "List of cipher suites that shall be declared as supported by the API producer 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 + } + }, + "required": [ + "providedConfiguration", + "tlsCipherSuites" + ] + }, + "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 producer when performing the SSL or TLS negotiation with the API client. Valid values of cipher suites are defined in IETF RFC 8447.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": [ + "tlsTunnelCipherSuites" + ] + } + }, + "required": [ + "authType", + "oauthServerInfo" + ] + }, + "metadata": { + "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" + } + }, + "required": [ + "id", + "name", + "type", + "standardVersion", + "providerSpecificApiVersion", + "apiVersion", + "apiEndpoint", + "supportedOperations", + "interfaceState" + ] + } + +} \ No newline at end of file -- GitLab From 5dd701d97f659c315e27d5f0d41dcbd558eb6a21 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 09:58:40 +0500 Subject: [PATCH 078/116] Added Test Cases for ChangeInterfaceStateTask.robot --- .../ChangeInterfaceStateTask.robot | 83 +++++++++++++++++++ .../NFVMANOCimKeywords.robot | 45 +++++++++- 2 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot new file mode 100644 index 000000000..62b638355 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot @@ -0,0 +1,83 @@ +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST Change interface state task + [Documentation] Test ID: 8.3.1.7.1 + ... 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: + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for Change interface state task + Check HTTP Response Status Code Is 202 + Check Operation Occurrence Id + +POST Change interface state task - Conflict + [Documentation] Test ID: 8.3.1.7.2 + ... 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: + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for Change interface state task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Change interface state task - Conflict - Method not implemented + [Documentation] Test ID: 8.3.1.7.3 + ... Test title: GET Change interface state task - Conflict - 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: + ... Reference: clause 5.5.12.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Get request for Change interface state task + Check HTTP Response Status Code Is 405 + +PUT Change interface state task - Conflict - Method not implemented + [Documentation] Test ID: 8.3.1.7.4 + ... 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: + ... Reference: clause 5.5.12.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for Change interface state task + Check HTTP Response Status Code Is 405 + +PATCH Change interface state task - Conflict - Method not implemented + [Documentation] Test ID: 8.3.1.7.5 + ... 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: + ... Reference: clause 5.5.12.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Patch request for Change interface state task + Check HTTP Response Status Code Is 405 + +DELETE Change interface state task - Conflict - Method not implemented + [Documentation] Test ID: 8.3.1.7.6 + ... 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: + ... Reference: clause 5.5.12.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for Change interface state task + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index b5479c3f8..ba2e36482 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -385,4 +385,47 @@ Send Delete request for Individual NFV-MANO Serive Interface Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} ${outputResponse}= Output response - Set Global Variable @{response} ${outputResponse} \ No newline at end of file + Set Global Variable @{response} ${outputResponse} + +Send Post request for Change interface state task + Log Trying to perform a POST for Change interface state task + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Get request for Change interface state task + Log Trying to perform a GET (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Put request for Change interface state task + Log Trying to perform a PUT (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch request for Change interface state task + Log Trying to perform a PATCH (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for Change interface state task + Log Trying to perform a DELETE (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}//mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file -- GitLab From 59d75b3069be98a1e68a01d05baf4dfdc381282b Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 10:47:11 +0500 Subject: [PATCH 079/116] Added Test Cases for PeerEntities.robot --- .../NFVMANOCimKeywords.robot | 96 +++++++- .../PeerEntities.robot | 190 ++++++++++++++++ .../jsons/CreatePeerEntityRequest.json | 5 + .../schemas/PeerEntities.json | 215 ++++++++++++++++++ .../schemas/PeerEntity.json | 212 +++++++++++++++++ 5 files changed, 716 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index ba2e36482..0f6997096 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -391,7 +391,8 @@ Send Post request for Change interface state task Log Trying to perform a POST for Change interface state task Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state + ${body}= Get File jsons/ManoConfigModificationRequest.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -428,4 +429,95 @@ Send Delete request for Change interface state task Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} DELETE ${apiRoot}/${apiName}/${apiMajorVersion}//mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${output}= Output response - Set Suite Variable ${response} ${output} \ No newline at end of file + Set Suite Variable ${response} ${output} + +Send Post request for Peer Entity + Log Trying to perform a POST for Peer Entity + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body}= Get File jsons/CreatePeerEntityRequest.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Peer Entity + Log Query to GET information about multiple peer entities. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Peer Entity with invalid filter + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?attribute_not_exist=some_value + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Peer Entity with invalid selector + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?fields=wrong_field + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Peer Entity with filter + Log Query information about multiple peer entities with attribute filters. + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?${filter}=${filter_value} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Peer Entity with all_fields attribute selector + Log Queries information about multiple peer entities, using all_fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Peer Entity with fields attribute selector + Log Queries information about multiple peer entities, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Peer Entity with exclude_fields attribute selector + Log Queries information about multiple peer entities, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?exclude_fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send PUT request for Peer Entity + 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":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send PATCH request for Peer Entity + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send DELETE request for Peer Entity + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot new file mode 100644 index 000000000..e40ee058a --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -0,0 +1,190 @@ +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST Peer Entity + [Documentation] Test ID: 8.3.1.8.1 + ... 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. + ... Pre-conditions: + ... Reference: clause 5.5.13.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for Peer Entity + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PeerEntity + Check Operation Occurrence Id + +GET Peer Entity + [Documentation] Test ID: 8.3.1.8.2 + ... Test title: GET Peer Entity + ... Test objective: The objective is to queries information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities. + ... Pre-conditions: At least one Peer Entity is already created. + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntities + +GET Peer Entity - invalid attribute-based filter + [Documentation] Test ID: 8.3.1.8.3 + ... Test title: GET Peer Entity - 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity with invalid filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Peer Entity - invalid attribute selector + [Documentation] Test ID: 8.3.1.8.4 + ... Test title: GET Peer Entity - 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity with invalid selector + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Peer Entity - Bad Request Response too Big + [Documentation] Test ID: 8.3.1.8.5 + ... Test title: GET Peer Entity - 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Peer Entity with attribute-based filter + [Documentation] Test ID: 8.3.1.8.6 + ... Test title: GET Peer Entity 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 + ... Pre-conditions: At least one Peer Entity is already created. + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity with filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntities + +GET Peer Entity with "all_fields" attribute selector + [Documentation] Test ID: 8.3.1.8.7 + ... Test title: GET Peer Entity 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 + ... Pre-conditions: At least one Peer Entity is already created. + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntities + +GET Peer Entity with "exclude_default" attribute selector + [Documentation] Test ID: 8.3.1.8.8 + ... Test title: GET Peer Entity 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 + ... Pre-conditions: At least one Peer Entity is already created. + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity with all_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntities + + +GET Peer Entity with "fields" attribute selector + [Documentation] Test ID: 8.3.1.8.9 + ... Test title: GET Peer Entity 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 + ... Pre-conditions: At least one Peer Entity is already created. + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity with fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntities + +GET Peer Entity with "exclude_fields" attribute selector + [Documentation] Test ID: 8.3.1.8.10 + ... Test title: GET Peer Entity 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 + ... Pre-conditions: At least one Peer Entity is already created. + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: none + Get Peer Entity with exclude_fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntities + +GET Peer Entity with Paged Response + [Documentation] Test ID: 8.3.1.8.11 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Peer Entity + Check HTTP Response Status Code Is 200 + Check LINK in Header + +PUT Peer Entity - Method not implemented + [Documentation] Test ID: 8.3.1.8.12 + ... Test title: PUT Peer Entity - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.13.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for Peer Entity + Check HTTP Response Status Code Is 405 + +PATCH Peer Entity - Method not implemented + [Documentation] Test ID: 8.3.1.8.13 + ... Test title: PATCH Peer Entity - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.13.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Patch request for Peer Entity + Check HTTP Response Status Code Is 405 + +DELETE Peer Entity - Method not implemented + [Documentation] Test ID: 8.3.1.8.14 + ... Test title: DELETE Peer Entity - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.13.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for Peer Entity + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json new file mode 100644 index 000000000..baa48b7e2 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json @@ -0,0 +1,5 @@ +{ + "peerEntityId": "", + "name": "NFV-MANO Entity", + "type": "NFVO" +} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.json new file mode 100644 index 000000000..c7e85d04b --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.json @@ -0,0 +1,215 @@ +{ "type": "array", + "items": { + "description": "This type represents an individual peer entity. \n", + "type": "object", + "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. - 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", + "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.\n", + "type": "array", + "items": { + "description": "This type represents an interface consumed by the producer NFV MANO functional entity from another peer functional entity. \n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "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.\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. - 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", + "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. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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 + } + } + } + } + } + } + }, + "required": [ + "id", + "name", + "type", + "standardVersion", + "apiVersion", + "apiEndpoint" + ] + } + }, + "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" + ] + } + }, + "required": [ + "id", + "peerEntityId", + "name", + "type", + "peerEntityState" + ] + } + +} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.json new file mode 100644 index 000000000..cbf0cbe24 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.json @@ -0,0 +1,212 @@ +{ + "description": "This type represents an individual peer entity. \n", + "type": "object", + "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. - 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", + "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.\n", + "type": "array", + "items": { + "description": "This type represents an interface consumed by the producer NFV MANO functional entity from another peer functional entity. \n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "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.\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. - 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", + "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. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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. \nNOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration shall be supported, and dynamic configuration may be supported.\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 + } + } + } + } + } + } + }, + "required": [ + "id", + "name", + "type", + "standardVersion", + "apiVersion", + "apiEndpoint" + ] + } + }, + "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" + ] + } + }, + "required": [ + "id", + "peerEntityId", + "name", + "type", + "peerEntityState" + ] + } \ No newline at end of file -- GitLab From e596d00af8923fdf876b374bd56ffdf61f1dbe33 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 10:48:18 +0500 Subject: [PATCH 080/116] fixed Response Code issue --- .../NFVMANOEntity.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index ba7ee2ec0..2a4d56277 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -81,7 +81,7 @@ PATCH NFV-MANO entity - PreCondition Failed ... Applicability: none ... Post-Conditions: The NFV-MANO entity is not modified by the operation Send Patch request for NFV-MANO Entity - Check HTTP Response Status Code Is 409 + Check HTTP Response Status Code Is 412 Check HTTP Response Body Json Schema Is ProblemDetails DELETE NFV-MANO entity - Method not implemented -- GitLab From 958a1de1b20f02387a754815bdc2d800328f6465 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 10:51:41 +0500 Subject: [PATCH 081/116] Json file added ChangeStateRequest --- .../NFVMANOCimKeywords.robot | 2 +- .../jsons/ChangeStateRequest.json | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 0f6997096..1c249dc6c 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -391,7 +391,7 @@ Send Post request for Change interface state task Log Trying to perform a POST for Change interface state task Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body}= Get File jsons/ManoConfigModificationRequest.json + ${body}= Get File jsons/ChangeStateRequest.json POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${body} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json new file mode 100644 index 000000000..82608e379 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json @@ -0,0 +1,7 @@ +{ + "operationalStateChange": + { + "operationalStateAction":"START" + } + +} \ No newline at end of file -- GitLab From 99d0a817304c7de5ab84bf1ae0daa000d49cabba Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 11:48:58 +0500 Subject: [PATCH 082/116] Added Test Cases for IndividualPeerEntity.robot --- .../IndividualPeerEntity.robot | 97 +++++++++++++++++++ .../NFVMANOCimKeywords.robot | 42 ++++++++ .../environment/variables.txt | 4 +- .../PeerEntityConfigModificationRequest.json | 3 + 4 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/PeerEntityConfigModificationRequest.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot new file mode 100644 index 000000000..1eaf748e1 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot @@ -0,0 +1,97 @@ +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST Individual Peer Entity - Method not implemented + [Documentation] Test ID: 8.3.1.9.1 + ... Test title: POST Individual Peer Entity - Method not implemented + ... Test objective: The objective is to test that POST method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.14.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Post request for Individual Peer Entity + Check HTTP Response Status Code Is 405 + +GET Individual Peer Entity + [Documentation] Test ID: 8.3.1.9.2 + ... 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: + ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get Individual Peer Entity + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntity + +PUT Individual Peer Entity - Method not implemented + [Documentation] Test ID: 8.3.1.9.3 + ... Test title: PUT Individual Peer Entity - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.14.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Put request for Individual Peer Entity + Check HTTP Response Status Code Is 405 + +PATCH Individual Peer Entity + [Documentation] Test ID: 8.3.1.9.4 + ... 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 [5] V3.3.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 + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaceModifications + +PATCH Individual Peer Entity - Conflict + [Documentation] Test ID: 8.3.1.9.5 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: Peer Entity Resource is not modified by the operation + Send Patch request for Individual Peer Entity + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +PATCH Individual Peer Entity - PreCondition Failed + [Documentation] Test ID: 8.3.1.9.6 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: Peer Entity Resource is not modified by the operation + Send Patch request for Individual Peer Entity + Check HTTP Response Status Code Is 412 + Check HTTP Response Body Json Schema Is ProblemDetails + +DELETE Individual Peer Entity - Method not implemented + [Documentation] Test ID: 8.3.1.9.7 + ... Test title: DELETE Individual Peer Entity - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemeted. + ... Pre-conditions: + ... Reference: clause 5.5.14.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: + Send Delete request for Individual Peer Entity + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 1c249dc6c..86d22e718 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -519,5 +519,47 @@ Send DELETE request for Peer Entity Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Post request for Individual Peer Entity + Log Trying to perform a POST (method should not be implemented) + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Individual Peer Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Put request for Individual Peer Entity + 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":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Patch request for Individual Peer Entity + log Trying to modify an NFV-MANO Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${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 + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 709f9421e..8ae28f3ad 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -29,4 +29,6 @@ ${fields} ${changeStateOpOccId} -${manoServiceInterfaceId} \ No newline at end of file +${manoServiceInterfaceId} + +${peerEntityId} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/PeerEntityConfigModificationRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/PeerEntityConfigModificationRequest.json new file mode 100644 index 000000000..f5704760d --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/PeerEntityConfigModificationRequest.json @@ -0,0 +1,3 @@ +{ + "name": "PeerEntityConfigModificationRequest" +} \ No newline at end of file -- GitLab From fbde6eca05ba90623c1c8dd199e6ee72bd45e66c Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 15:06:01 +0500 Subject: [PATCH 083/116] Added Test Cases for Subscriptions.robot --- .../NFVMANOCimKeywords.robot | 126 ++++++++++++- .../Subscriptions.robot | 176 ++++++++++++++++++ .../environment/variables.txt | 25 ++- .../jsons/CimSubscriptionRequest.json | 3 + .../schemas/CimSubscription.json | 113 +++++++++++ .../schemas/CimSubscriptions.json | 117 ++++++++++++ 6 files changed, 558 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscription.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscriptions.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 86d22e718..5843e8823 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -562,4 +562,128 @@ Send Delete request for Individual Peer Entity Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} ${outputResponse}= Output response - Set Global Variable @{response} ${outputResponse} \ No newline at end of file + Set Global Variable @{response} ${outputResponse} + + + + +Create Sessions + Pass Execution If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 0 MockServer not necessary to run + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} + +Check Notification Endpoint + &{notification_request}= Create Mock Request Matcher GET ${callback_endpoint} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + + +Get all Subscriptions + [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"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + 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}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${filter_ok} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Subscriptions with invalid 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}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${filter_ko} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post Request for Subscription + Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + ${body_request}= Get File jsons/CimSubscriptionRequest.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${output}= Output response + Set Suite Variable ${response} ${output} + Run Keyword If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 1 + ... Check Notification Endpoint + +Check HTTP Response Body CimSubscription Attributes Values Match the Issued Subscription + Log Check Response matches subscription + ${body}= Get File jsons/subscriptions.json + ${subscription}= evaluate json.loads('''${body}''') json + Should Be Equal As Strings ${response['body']['callbackUri']} ${subscription['callbackUri']} + +Check Postcondition Subscription Is Set + Log Check Postcondition subscription exist + Set Headers {"Accept": "${ACCEPT_JSON}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${response['body']['id']} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + +Send Post Request for Duplicated Subscription + Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${body_request}= Get File jsons/CimSubscriptionRequest.json + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check HTTP Response Body Is Empty + Should Be Empty ${response['body']} + Log No json schema is provided. Validation OK + +Check Postcondition Subscription Resource Returned in Location Header Is Available + Log Going to check postcondition + GET ${response['headers']['Location']} + Integer response status 200 + Log Received a 200 OK as expected + ${contentType}= Output response headers Content-Type + Should Contain ${contentType} application/json + ${result}= Output response body + Validate Json CimSubscription.schema.json ${result} + Log Validated CimSubscription schema + ${body}= Get File jsons/subscriptions.json + ${subscription}= evaluate json.loads('''${body}''') json + Should Be Equal ${result['callbackUri']} ${subscription['callbackUri']} + Log Validated Issued subscription is same as original + +Send Put Request for Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Patch Request for Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete Request for Subscriptions + [Documentation] This method is not supported. When this method is requested on this resource, the NFV-MANO shall return a "405 Method + ... Not Allowed" response as defined in clause 4.3.5.4. + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Subscriptions Exists + Log Checking that subscriptions exists + Get all Subscriptions + Check HTTP Response Status Code Is 200 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot new file mode 100644 index 000000000..142a5c08d --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot @@ -0,0 +1,176 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Resource NFVMANOCimKeywords.robot +Library MockServerLibrary +Library Process +Suite Setup Create Sessions +Suite Teardown Terminate All Processes kill=true + +*** Test Cases *** +GET all Subscriptions + [Documentation] Test ID: 8.3.1.10.1 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is CimSubscriptions + +GET Subscriptions with attribute-based filter + [Documentation] Test ID: 8.3.1.10.2 + ... 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, perform a JSON schema validation of the collected indicators data structure, and verify that the retrieved information matches the issued attribute-based filters + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Subscriptions with attribute-based filters + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is CimSubscriptions + +GET Subscriptions with Paged Response + [Documentation] Test ID: 8.3.1.10.3 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: + ... Post-Conditions: + Get all Subscriptions + Check HTTP Response Status Code Is 200 + Check LINK in Header + +GET Subscriptions - invalid attribute-based filter + [Documentation] Test ID: 8.3.1.10.4 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Subscriptions with invalid attribute-based filters + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + + +GET Subscriptions - Bad Request Response too Big + [Documentation] Test ID: 8.3.1.10.5 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Subscriptions - invalid resource endpoint + [Documentation] Test ID: 8.3.1.10.6 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions + Check HTTP Response Status Code Is 404 + + +Create new Subscription + [Documentation] Test ID 8.3.1.10.7 + ... 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: + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscription is successfully set and it matches the issued subscription + Send Post Request for Subscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is CimSubscription + Check HTTP Response Body CimSubscription Attributes Values Match the Issued Subscription + Check Postcondition Subscription Is Set + + +Create request for duplicated Subscription not creating duplicated subscriptions + [Tags] no-duplicated-subs + [Documentation] Test ID 8.3.1.10.8 + ... 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 [5] V3.3.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 + Send Post Request for Duplicated Subscription + Check HTTP Response Status Code Is 303 + Check HTTP Response Body Is Empty + Check HTTP Response Header Contains Location + Check Postcondition Subscription Resource Returned in Location Header Is Available + +Create request for duplicated Subscription creating duplicated subscriptions + [Tags] duplicated-subs + [Documentation] Test ID 8.3.1.10.9 + ... 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 [5] V3.3.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 + Send Post Request for Duplicated Subscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PmSubscription + Check HTTP Response Body CimSubscription Attributes Values Match the Issued Subscription + Check Postcondition Subscription Is Set + +PUT Subscriptions - Method not implemented + [Documentation] Test ID 8.3.1.10.10 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Put Request for Subscriptions + Check HTTP Response Status Code Is 405 + +PATCH Subscriptions - Method not implemented + [Documentation] Test ID 8.3.1.10.11 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Patch Request for Subscriptions + Check HTTP Response Status Code Is 405 + +DELETE Subscriptions - Method not implemented + [Documentation] Test ID 8.3.1.10.12 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscriptions are not deleted by the failed operation + Send Delete Request for Subscriptions + Check HTTP Response Status Code Is 405 + Check Postcondition Subscriptions Exists diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 8ae28f3ad..7d785da9a 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -31,4 +31,27 @@ ${changeStateOpOccId} ${manoServiceInterfaceId} -${peerEntityId} \ No newline at end of file +${peerEntityId} + +${callback_port} 9091 +${callback_uri} http://172.22.1.7:${callback_port} +${callback_endpoint} /nfvmanocim/subscriptions +${filter_ok} callbackUri=${callbackUri} +${filter_ko} erroneousFilter=erroneous +${callback_endpoint_fwd} /endpoint/check +${callback_endpoint_error} /subs_404 +${sleep_interval} 20s + +${total_polling_time} 2 min +${polling_interval} 10 sec + +${notification_request} [] +${notification_response} [] + +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar + +${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa +${erroneousSubscriptionId} erroneousSubscriptionId +${newSubscriptionId} newSubsciptionId + +${origResponse} {} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json new file mode 100644 index 000000000..3475fa745 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json @@ -0,0 +1,3 @@ +{ + "callbackUri": "http://172.22.1.7:9091" +} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscription.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscription.json new file mode 100644 index 000000000..819a5d99e --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscription.json @@ -0,0 +1,113 @@ +{ + "description": "This type represents a subscription related to notifications about NFV-MANO configuration and information management changes\n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "filter": { + "description": "This type represents a subscription filter related to notifications about NFV-MANO configuration and information management. \n", + "type": "object", + "properties": { + "manoEntitySubscriptionFilter": { + "description": "This type represents subscription filter criteria to match NFV-MANO functional entities and their associated managed objects. \n", + "type": "object", + "properties": { + "manoEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "manoServiceIds": { + "description": "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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" + } + }, + "manoServiceNames": { + "description": "If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "manoServiceInterfaceIds": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance identifier listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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 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" + } + }, + "manoServiceInterfaceNames": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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" + } + }, + "consumedManoInterfaceIds": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance identifier listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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" + } + }, + "consumedManoInterfaceNames": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance Name listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "InformationChangedNotification", + "ChangeStateNotification" + ] + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "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" + } + } + } + }, + "required": [ + "self" + ] + } + }, + "required": [ + "id", + "callbackUri", + "_links" + ] + } \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscriptions.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscriptions.json new file mode 100644 index 000000000..6ac082d31 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/CimSubscriptions.json @@ -0,0 +1,117 @@ +{ "type": "array", + "items": { + "description": "This type represents a subscription related to notifications about NFV-MANO configuration and information management changes\n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "filter": { + "description": "This type represents a subscription filter related to notifications about NFV-MANO configuration and information management. \n", + "type": "object", + "properties": { + "manoEntitySubscriptionFilter": { + "description": "This type represents subscription filter criteria to match NFV-MANO functional entities and their associated managed objects. \n", + "type": "object", + "properties": { + "manoEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "manoServiceIds": { + "description": "manoServiceIds\tIdentifierInManoEntity\t0..N\tIf present, match NFV-MANO services with an instance identifier listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\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" + } + }, + "manoServiceNames": { + "description": "If present, match NFV-MANO services with an NFV-MANO service name listed in this attribute.\nThe attributes \"manoServiceIds\" and \"manoServiceNames\" are alternatives to reference to NFV-MANO services in a filter. They should not be used together in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "manoServiceInterfaceIds": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance identifier listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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 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" + } + }, + "manoServiceInterfaceNames": { + "description": "If present, match NFV-MANO functional entity produced interfaces with an instance Name listed in this attribute.\nThe attributes \"manoServiceInterfaceIds\" and \"manoServiceInterfaceNames\" are alternatives to reference to NFV-MANO functional entity produced interfaces 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" + } + }, + "consumedManoInterfaceIds": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance identifier listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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" + } + }, + "consumedManoInterfaceNames": { + "description": "If present, match NFV-MANO functional entity consumed interfaces with an instance Name listed in this attribute.\nThe attributes \"consumedManoInterfaceIds\" and \"consumedManoInterfaceNames\" are alternatives to reference to NFV-MANO functional entity consumed interfaces 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. \nPermitted values:\n - InformationChangedNotification\n - ChangeStateNotification\n\nNOTE:\tThe permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "InformationChangedNotification", + "ChangeStateNotification" + ] + } + } + } + }, + "callbackUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "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" + } + } + } + }, + "required": [ + "self" + ] + } + }, + "required": [ + "id", + "callbackUri", + "_links" + ] + } + + +} \ No newline at end of file -- GitLab From a7cf9f0b1b1a5f6891cc02218a645629740468f2 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 15:11:30 +0500 Subject: [PATCH 084/116] Added Test Cases for IndividualSubscription.robot --- .../IndividualSubscription.robot | 98 +++++++++++++++++++ .../NFVMANOCimKeywords.robot | 81 ++++++++++++++- 2 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot new file mode 100644 index 000000000..26f01755e --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot @@ -0,0 +1,98 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Resource NFVMANOCimKeywords.robot + +*** Test Cases *** +GET Individual Subscription + [Documentation] Test ID: 8.3.1.11.1 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Subscription + 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 - invalid resource identifier + [Documentation] Test ID: 8.3.1.11.2 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET individual Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 + +DELETE Individual Subscription + [Documentation] Test ID: 8.3.1.11.3 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The is not available anymore in the NFV-MANO + Send Delete request for individual Subscription + Check HTTP Response Status Code Is 204 + Check Postcondition Subscription is Deleted + +DELETE Individual Subscription - invalid resource identifier + [Documentation] Test ID: 8.3.1.11.4 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Delete request for individual Subscription with invalid resource identifier + Check HTTP Response Status Code Is 404 + +POST Individual Subscription - Method not implemented + [Documentation] Test ID: 8.3.1.11.5 + ... 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: + ... Reference: clause 5.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The VNF Performance Subscription is not created on the NFV-MANO + Send Post request for individual Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition Subscription is not Created + +PUT Individual Subscription - Method not implemented + [Documentation] Test ID: 8.3.1.11.6 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscription is not modified by the operation + Send Put request for individual Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition Subscription is Unmodified (Implicit) + +PATCH Individual Subscription - Method not implemented + [Documentation] Test ID: 8.3.1.11.7 + ... 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: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The subscription is not modified by the operation + Send Patch request for individual Subscription + Check HTTP Response Status Code Is 405 + Check Postcondition Subscription is Unmodified (Implicit) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 5843e8823..f2a01f2aa 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -686,4 +686,83 @@ Send Delete Request for Subscriptions Check Postcondition Subscriptions Exists Log Checking that subscriptions exists Get all Subscriptions - Check HTTP Response Status Code Is 200 \ No newline at end of file + Check HTTP Response Status Code Is 200 + +Get Individual Subscription + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + 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 + Should Be Equal As Strings ${response['body']['id']} ${subscriptionId} + Log Subscription identifier as expected + +GET individual Subscription with invalid resource identifier + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Delete request for individual Subscription + Set headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Check Postcondition Subscription is Deleted + Log Check Postcondition Subscription is deleted + GET individual Subscription + Check HTTP Response Status Code Is 404 + +Send Delete request for individual Subscription with invalid resource identifier + Log Trying to delete a subscription in the VNFM with invalid id + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + DELETE ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${erroneousSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Post request for individual Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Put request for individual Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PUT ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Send Patch request for individual Subscription + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${origOutput}= Output response + Set Suite Variable ${origResponse} ${origOutput} + PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + +Check Postcondition Subscription is Unmodified (Implicit) + Log Check postconidtion subscription not modified + GET individual Subscription + Log Check Response matches original Subscription + ${subscription}= evaluate json.loads('''${response['body']}''') json + Should Be Equal As Strings ${origResponse['body']['id']} ${subscription.id} + Should Be Equal As Strings ${origResponse['body']['callbackUri']} ${subscription.callbackUri} + +Check Postcondition Subscription is not Created + Log Trying to get a new subscription + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} + ${output}= Output response + Set Suite Variable @{response} ${output} + Check HTTP Response Status Code Is 404 \ No newline at end of file -- GitLab From 2831cc8a4aada1df5dfcfdb8d9e7dfab7b8c3e8b Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 13 Aug 2020 15:27:31 +0500 Subject: [PATCH 085/116] Added Test Cases for NotificationEndpoint.robot --- .../NotificationEndpoint.robot | 112 +++++++++++++ .../schemas/ChangeStateNotification.json | 151 ++++++++++++++++++ .../InformationChangedNotification.json | 81 ++++++++++ 3 files changed, 344 insertions(+) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateNotification.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/InformationChangedNotification.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot new file mode 100644 index 000000000..9a8e00d21 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot @@ -0,0 +1,112 @@ +*** Setting *** +Resource environment/variables.txt +Suite Setup Create Sessions +Suite Teardown Terminate All Processes kill=true +Library MockServerLibrary +Library Process +Library OperatingSystem +Library BuiltIn +Library Collections +Library String + + +*** Test Cases *** +Information Changed Notification + [Documentation] Test ID: 8.3.1.12.1 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Trigger the availability of Information Changed Notification (external action) + Check Information Changed Notification Available Http POST Request Body Json Schema Is InformationChangedNotification + Check Information Changed Notification Available Http POST Request Body notificationType attribute Is InformationChangedNotification + +Change State Notification + [Documentation] Test ID: 8.3.1.12.2 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANOz + ... Applicability: none + ... Post-Conditions: none + Trigger the cross of Change State (external action) + Check Change State Notification Http POST Request Body Json Schema Is ChangeStateNotification + Check Change State Notification Http POST Request Body notificationType attribute Is ChangeStateNotification + + +*** Keywords *** +Trigger the availability of Information Changed Notification (external action) + #do nothing + Log do nothing + +Trigger the cross of Change State (external action) + #do nothing + Log do nothing + +Check Information Changed Notification Available Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + +Check Information Changed Notification Available Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification Information Changed Notification Available Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + +Check Change State Notification Http POST Request Body Json Schema Is + [Arguments] ${element} + ${schema}= Get File schemas/${element}.schema.json + Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd} + + +Check Change State Notification Http POST Request Body notificationType attribute Is + [Arguments] ${type} + Configure Notification State Crossed Handler ${callback_endpoint_fwd} ${type} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + + +Check Change State Notification Http POST Request Body changeType attribute Is + [Arguments] ${type} + #do nothing + Log do nothing + + +Configure Notification Information Changed Notification Available Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Configure Notification State Crossed Handler + [Arguments] ${endpoint} ${type} + ${json}= evaluate {} + set to dictionary ${json} notificationType ${type} + ${BODY}= evaluate json.dumps(${json}) json + Log Creating mock request and response to handle status notification + &{notification_request}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} + &{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204 + Create Mock Expectation ${notification_request} ${notification_response} + +Configure Notification Forward + [Arguments] ${schema} ${endpoint} ${endpoint_fwd} + Log Creating mock Http POST forward to handle ${schema} + &{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema} + &{notification_fwd}= Create Mock Http Forward ${endpoint_fwd} + Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd} + +Create Sessions + Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance + Wait For Process handle=mockInstance timeout=5s on_timeout=continue + Create Mock Session ${callback_uri}:${callback_port} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateNotification.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateNotification.json new file mode 100644 index 000000000..fc3b68c99 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ChangeStateNotification.json @@ -0,0 +1,151 @@ +{ + "description": "This type represents a Change state operation occurrence.\n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"ChangeStateNotification\" for this notification type.\n", + "type": "string" + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timestamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "changeStateOpOccId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "stateChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "changeStateOperationState": { + "description": "The enumeration ChangeStateOpOccStateEnumType defines permitted values for the change state operation. It shall comply with the provisions :\n - PROCESSING\tThe change state operation is currently in execution.\n - COMPLETED\tThe change state operation has been completed successfully.\n - FAILED\tThe change state operation has failed.\n", + "type": "string", + "enum": [ + "PROCESSING", + "COMPLETED", + "FAILED" + ] + }, + "managedObjectRef": { + "description": "This type represents the identifier to reference a managed object of a particular type. \n", + "type": "object", + "properties": { + "type": { + "description": "Indicates the type of managed object. Permitted values:\n - MANO_ENTITY\n - MANO_SERVICE\n - MANO_SERVICE_IF\n - CONSUMED_MANO_IF\n - MANO_ENTITY_COMPONENT\n\nThe \"MANO_ENTITY COMPONENT\" is only applicable if attribute \"manoEntityComponents\" in \"ManoEntity\" is supported by the API producer.\n", + "type": "string", + "enum": [ + "MANO_ENTITY", + "MANO_SERVICE", + "MANO_SERVICE_IF", + "CONSUMED_MANO_IF", + "MANO_ENTITY_COMPONENT" + ] + }, + "objectId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "subObjectId": { + "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" + } + }, + "required": [ + "type", + "objectId" + ] + }, + "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" + ] + }, + "_links": { + "description": "Links to resources related to this notification.\n", + "type": "object", + "properties": { + "subscription": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "objectInstance": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "changeStateOpOcc": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + }, + "required": [ + "subscription", + "objectInstance", + "changeStateOpOcc" + ] + } + }, + "required": [ + "id", + "notificationType", + "subscriptionId", + "timestamp", + "changeStateOpOccId", + "stateChangedTime", + "changeStateOperationState", + "managedObjectRef", + "_links" + ] + } \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/InformationChangedNotification.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/InformationChangedNotification.json new file mode 100644 index 000000000..941a4bb5c --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/InformationChangedNotification.json @@ -0,0 +1,81 @@ +{ + "description": "This type represents a notification that is sent when data about configuration and information of the NFV-MANO functional entity have been changed.\n", + "type": "object", + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "notificationType": { + "description": "Discriminator for the different notification types. Shall be set to \"InformationChangedNotification\" for this notification type.\n", + "type": "string" + }, + "subscriptionId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "timeStamp": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "informationChangedTime": { + "description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n", + "type": "string", + "format": "date-time" + }, + "manoEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "changedInfo": { + "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" + }, + "_links": { + "description": "Links to resources related to this notification.\n", + "type": "object", + "properties": { + "self": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "subscription": { + "description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + }, + "required": [ + "self" + ] + } + }, + "required": [ + "id", + "notificationType", + "subscriptionId", + "timeStamp", + "informationChangedTime", + "manoEntityId", + "changedInfo", + "_links" + ] + } \ No newline at end of file -- GitLab From f2a4732dd8a3f85c7e3a8bb0f6fc7c56365a63a4 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 17 Aug 2020 12:21:13 +0500 Subject: [PATCH 086/116] Added Test Cases for ApiVersion.robot --- .../ApiVersion.robot | 211 ++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot new file mode 100644 index 000000000..fac4978ca --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot @@ -0,0 +1,211 @@ +*** Settings *** +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library DependencyLibrary +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +POST API Version - Method not implemented + [Documentation] Test ID: 8.3.1.13.1 + ... Test title: POST API version - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version + [Documentation] Test ID: 8.3.1.13.2 + ... Test title: GET API Version + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version - Method not implemented + [Documentation] Test ID: 8.3.1.13.3 + ... Test title: PUT API Version - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version - Method not implemented + [Documentation] Test ID: 8.3.1.13.4 + ... Test title: PATCH API Version - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version - Method not implemented + [Documentation] Test ID: 8.3.1.13.5 + ... Test title: DELETE API Version - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +POST API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.1.13.6 + ... Test title: POST API version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that POST method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + POST API Version + Check HTTP Response Status Code Is 405 + +GET API Version with apiMajorVerion + [Documentation] Test ID: 8.3.1.13.7 + ... Test title: GET API Version with apiMajorVerion + ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET API Version + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ApiVersionInformation + +PUT API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.1.13.8 + ... Test title: PUT API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PUT method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PUT API Version + Check HTTP Response Status Code Is 405 + +PATCH API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.1.13.9 + ... Test title: PATCH API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that PATCH method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + PATCH API Version + Check HTTP Response Status Code Is 405 + +DELETE API Version with apiMajorVerion - Method not implemented + [Documentation] Test ID: 8.3.1.13.10 + ... Test title: DELETE API Version with apiMajorVerion - Method not implemented + ... Test objective: The objective is to test that DELETE method is not implemented + ... Pre-conditions: none + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + DELETE API Version + Check HTTP Response Status Code Is 405 + +*** Keywords *** +POST API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +GET API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PUT API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +PATCH API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +DELETE API Version with apiMajorVersion + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Check HTTP Response Body Json Schema Is + [Arguments] ${input} + ${schema} = Catenate ${input} .schema.json + Validate Json ${schema} ${response['body']} + Log Json Schema Validation OK -- GitLab From 8e9b422adfd67e1734f82b2afdfcac328a16fa42 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 27 Aug 2020 13:53:15 +0500 Subject: [PATCH 087/116] fixed issues --- .../ChangeInterfaceStateTask.robot | 28 +++---- .../ChangeNFVMANOEntityStateTask.robot | 24 +++--- .../ChangeStateOperationOccurance.robot | 40 +++++----- ...vidualStateChangeOpperationOccurance.robot | 22 +++--- .../NFVMANOEntity.robot | 14 ++-- .../NFVMANOServiceInterface.robot | 74 +++++++++---------- 6 files changed, 101 insertions(+), 101 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot index 62b638355..76278ffc6 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot @@ -12,11 +12,11 @@ POST Change interface state task [Documentation] Test ID: 8.3.1.7.1 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for Change interface state task Check HTTP Response Status Code Is 202 Check Operation Occurrence Id @@ -25,24 +25,24 @@ POST Change interface state task - Conflict [Documentation] Test ID: 8.3.1.7.2 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for Change interface state task Check HTTP Response Status Code Is 409 Check HTTP Response Body Json Schema Is ProblemDetails -GET Change interface state task - Conflict - Method not implemented +GET Change interface state task - Method not implemented [Documentation] Test ID: 8.3.1.7.3 - ... Test title: GET Change interface state task - Conflict - 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: + ... Pre-conditions: none ... Reference: clause 5.5.12.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Get request for Change interface state task Check HTTP Response Status Code Is 405 @@ -50,11 +50,11 @@ PUT Change interface state task - Conflict - Method not implemented [Documentation] Test ID: 8.3.1.7.4 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.12.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for Change interface state task Check HTTP Response Status Code Is 405 @@ -62,11 +62,11 @@ PATCH Change interface state task - Conflict - Method not implemented [Documentation] Test ID: 8.3.1.7.5 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.12.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Patch request for Change interface state task Check HTTP Response Status Code Is 405 @@ -74,10 +74,10 @@ DELETE Change interface state task - Conflict - Method not implemented [Documentation] Test ID: 8.3.1.7.6 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.12.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Delete request for Change interface state task Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index c1914e7c8..a4a4b9935 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -11,11 +11,11 @@ POST NFV-MANO functional entity application state change [Documentation] Test ID: 8.3.1.2.1 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for NFV-MANO functional entity application state change Check HTTP Response Status Code Is 202 Check Operation Occurrence Id @@ -24,11 +24,11 @@ POST NFV-MANO functional entity application state change - Conflict [Documentation] Test ID: 8.3.1.2.2 ... 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 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: + ... Pre-conditions: none ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for NFV-MANO functional entity application state change Check HTTP Response Status Code Is 409 Check HTTP Response Body Json Schema Is ProblemDetails @@ -37,11 +37,11 @@ GET NFV-MANO functional entity application state change - Method not implemented [Documentation] Test ID: 8.3.1.2.3 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.7.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Get request for NFV-MANO functional entity application state change Check HTTP Response Status Code Is 405 @@ -49,11 +49,11 @@ PUT NFV-MANO functional entity application state change - Method not implemented [Documentation] Test ID: 8.3.1.2.4 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.7.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for NFV-MANO functional entity application state change Check HTTP Response Status Code Is 405 @@ -61,11 +61,11 @@ PATCH NFV-MANO functional entity application state change - Method not implement [Documentation] Test ID: 8.3.1.2.5 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.7.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Patch request for NFV-MANO functional entity application state change Check HTTP Response Status Code Is 405 @@ -73,10 +73,10 @@ DELETE NFV-MANO functional entity application state change - Method not implemen [Documentation] Test ID: 8.3.1.2.6 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.7.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... 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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot index 323e678d4..f3bbd69d0 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot @@ -12,11 +12,11 @@ POST Change State Operation Occurance - Method not implemented [Documentation] Test ID: 8.3.1.3.1 ... Test title: POST Change State Operation Occurance - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for Change State Operation Occurance Check HTTP Response Status Code Is 405 @@ -24,11 +24,11 @@ GET Change State Operation Occurance [Documentation] Test ID: 8.3.1.3.2 ... Test title: GET Change State Operation Occurance ... Test objective: The objective is to query status information about multiple change state operation occurrences. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State OpOcc Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOccs @@ -37,11 +37,11 @@ GET Change State Operation Occurance - invalid attribute-based filter [Documentation] Test ID: 8.3.1.3.3 ... Test title: GET Change State Operation Occurance - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State OpOcc with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -50,11 +50,11 @@ GET Change State Operation Occurance - invalid attribute selector [Documentation] Test ID: 8.3.1.3.4 ... Test title: GET Change State Operation Occurance - invalid attribute selector ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State OpOcc with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -63,11 +63,11 @@ GET Change State Operation Occurance - Bad Request Response too Big [Documentation] Test ID: 8.3.1.3.5 ... Test title: GET Change State Operation Occurance - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State OpOcc Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -76,11 +76,11 @@ GET Change State Operation Occurance with attribute-based filter [Documentation] Test ID: 8.3.1.3.6 ... Test title: GET Change State Operation Occurance with attribute-based filter ... Test objective: The objective is to query status information about multiple change state operation occurrences with attribute filters - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State OpOcc with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc @@ -89,11 +89,11 @@ GET Change State Operation Occurance with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.3.7 ... Test title: GET Change State Operation Occurance with "all_fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurance with "all_fields" attribute selector - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State OpOcc with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot index 765b7b866..dd5e63246 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot @@ -12,11 +12,11 @@ POST Individual Change State Operation Occurance - Method not implemented [Documentation] Test ID: 8.3.1.4.1 ... Test title: POST Individual Change State Operation Occurance - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.9.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for Individual Change State Operation Occurance Check HTTP Response Status Code Is 405 @@ -24,11 +24,11 @@ GET Individual Change State Operation Occurance [Documentation] Test ID: 8.3.1.4.2 ... Test title: GET Individual Change State Operation Occurance ... Test objective: The objective is to query status information about Individual change state operation occurrences. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Individual Change State OpOcc Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc @@ -37,11 +37,11 @@ PUT Individual Change State Operation Occurance - Method not implemented [Documentation] Test ID: 8.3.1.4.3 ... Test title: PUT Individual Change State Operation Occurance - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.9.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for Individual Change State Operation Occurance Check HTTP Response Status Code Is 405 @@ -49,11 +49,11 @@ PATCH Individual Change State Operation Occurance - Method not implemented [Documentation] Test ID: 8.3.1.4.4 ... Test title: PATCH Individual Change State Operation Occurance - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.9.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Patch request for Individual Change State Operation Occurance Check HTTP Response Status Code Is 405 @@ -61,10 +61,10 @@ DELETE Individual Change State Operation Occurance - Method not implemented [Documentation] Test ID: 8.3.1.4.5 ... Test title: DELETE Individual Change State Operation Occurance - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.9.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Delete request for Individual Change State Operation Occurance Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index 2a4d56277..edbdfe53f 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -12,11 +12,11 @@ POST NFV-MANO entity - Method not implemented [Documentation] Test ID: 8.3.1.1.1 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.3.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for NFV-MANO Entity Check HTTP Response Status Code Is 405 @@ -24,7 +24,7 @@ GET NFV-MANO entity [Documentation] Test ID: 8.3.1.1.2 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -37,11 +37,11 @@ PUT NFV-MANO entity - Method not implemented [Documentation] Test ID: 8.3.1.1.3 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.3.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for NFV-MANO Entity Check HTTP Response Status Code Is 405 @@ -88,10 +88,10 @@ DELETE NFV-MANO entity - Method not implemented [Documentation] Test ID: 8.3.1.1.7 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.3.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Delete request for NFV-MANO Entity Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot index 46fcf9102..3c88c58d8 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot @@ -12,11 +12,11 @@ POST NFV-MANO Serive Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.1 ... Test title: POST NFV-MANO Serive Interface - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for NFV-MANO Serive Interface Check HTTP Response Status Code Is 405 @@ -24,11 +24,11 @@ GET NFV-MANO Serive Interface [Documentation] Test ID: 8.3.1.5.2 ... Test title: GET NFV-MANO Serive Interface ... Test objective: The objective is to query status information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces @@ -37,11 +37,11 @@ GET NFV-MANO Serive Interface - invalid attribute-based filter [Documentation] Test ID: 8.3.1.5.3 ... Test title: GET NFV-MANO Serive Interface - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -50,11 +50,11 @@ GET NFV-MANO Serive Interface - invalid attribute selector [Documentation] Test ID: 8.3.1.5.4 ... Test title: GET NFV-MANO Serive Interface - invalid attribute selector ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -63,11 +63,11 @@ GET NFV-MANO Serive Interface - Bad Request Response too Big [Documentation] Test ID: 8.3.1.5.5 ... Test title: GET NFV-MANO Serive Interface - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -76,11 +76,11 @@ GET NFV-MANO Serive Interface with attribute-based filter [Documentation] Test ID: 8.3.1.5.6 ... Test title: GET NFV-MANO Serive Interface 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 - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces @@ -89,11 +89,11 @@ GET NFV-MANO Serive Interface with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.5.7 ... Test title: GET NFV-MANO Serive Interface with "all_fields" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "all_fields" attribute selector - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces @@ -102,11 +102,11 @@ GET NFV-MANO Serive Interface with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.5.8 ... Test title: GET NFV-MANO Serive Interface with "exclude_default" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "exclude_default" attribute selector - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces @@ -116,11 +116,11 @@ GET NFV-MANO Serive Interface with "fields" attribute selector [Documentation] Test ID: 8.3.1.5.9 ... Test title: GET NFV-MANO Serive Interface with "fields" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with fields attribute selector - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces @@ -129,10 +129,10 @@ GET NFV-MANO Serive Interface with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.5.10 ... Test title: GET NFV-MANO Serive Interface with "exclude_fields" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "exclude_fields" attribute selector - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: + ... Applicability: none ... Post-Conditions: none Get NFV-MANO Serive Interface with exclude_fields attribute selector Check HTTP Response Status Code Is 200 @@ -142,11 +142,11 @@ GET NFV-MANO Serive Interface with Paged Response [Documentation] Test ID: 8.3.1.5.11 ... Test title: GET NFV-MANO Serive Interface with Paged Response ... Test objective: The objective is to query NFV-MANO Serive Interface to get Paged Response. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get NFV-MANO Serive Interface Check HTTP Response Status Code Is 200 Check LINK in Header @@ -155,11 +155,11 @@ PUT NFV-MANO Serive Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.12 ... Test title: PUT NFV-MANO Serive Interface - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for NFV-MANO Serive Interface Check HTTP Response Status Code Is 405 @@ -167,11 +167,11 @@ PATCH NFV-MANO Serive Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.13 ... Test title: PATCH NFV-MANO Serive Interface - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Patch request for NFV-MANO Serive Interface Check HTTP Response Status Code Is 405 @@ -179,10 +179,10 @@ DELETE NFV-MANO Serive Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.14 ... Test title: DELETE NFV-MANO Serive Interface - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.10.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Delete request for NFV-MANO Serive Interface Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From e1a6043bd0997b5c96642162764340b3e2faefeb Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 3 Sep 2020 10:20:58 +0200 Subject: [PATCH 088/116] Fixe typos on NFVMANOCIM API tests --- .../ChangeStateOperationOccurance.robot | 100 +++++++++--------- .../NFVMANOCimKeywords.robot | 64 +++++------ .../NFVMANOServiceInterface.robot | 100 +++++++++--------- 3 files changed, 132 insertions(+), 132 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot index f3bbd69d0..388272b51 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot @@ -8,181 +8,181 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** -POST Change State Operation Occurance - Method not implemented +POST Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.3.1 - ... Test title: POST Change State Operation Occurance - Method not implemented + ... Test title: POST 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.8.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Post request for Change State Operation Occurance + Send Post request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 -GET Change State Operation Occurance +GET Change State Operation Occurrence [Documentation] Test ID: 8.3.1.3.2 - ... Test title: GET Change State Operation Occurance + ... Test title: GET Change State Operation Occurrence ... Test objective: The objective is to query status information about multiple change state operation occurrences. ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State OpOcc + Get Change State Operation Occurrence Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOccs -GET Change State Operation Occurance - invalid attribute-based filter +GET Change State Operation Occurrence - invalid attribute-based filter [Documentation] Test ID: 8.3.1.3.3 - ... Test title: GET Change State Operation Occurance - invalid attribute-based filter - ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... Test title: GET Change State Operation Occurrence - invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrence 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State OpOcc with invalid filter + Get Change State Operation Occurrence with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Change State Operation Occurance - invalid attribute selector +GET Change State Operation Occurrence - invalid attribute selector [Documentation] Test ID: 8.3.1.3.4 - ... Test title: GET Change State Operation Occurance - invalid attribute selector - ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... Test title: GET Change State Operation Occurrence - invalid attribute selector + ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrence 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State OpOcc with invalid selector + Get Change State Operation Occurrence with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Change State Operation Occurance - Bad Request Response too Big +GET Change State Operation Occurrence - Bad Request Response too Big [Documentation] Test ID: 8.3.1.3.5 - ... Test title: GET Change State Operation Occurance - Bad Request Response too Big - ... Test objective: The objective is to test that the retrieval of Change State Operation Occurance fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Test title: GET Change State Operation Occurrence - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrence 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State OpOcc + Get Change State Operation Occurrence Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Change State Operation Occurance with attribute-based filter +GET Change State Operation Occurrence with attribute-based filter [Documentation] Test ID: 8.3.1.3.6 - ... Test title: GET Change State Operation Occurance with attribute-based filter + ... Test title: GET Change State Operation Occurrence with attribute-based filter ... Test objective: The objective is to query status information about multiple change state operation occurrences with attribute filters ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State OpOcc with filter + Get Change State Operation Occurrence with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurance with "all_fields" attribute selector +GET Change State Operation Occurrence with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.3.7 - ... Test title: GET Change State Operation Occurance with "all_fields" attribute selector - ... Test objective: The objective is to retrieve Change State Operation Occurance with "all_fields" attribute selector + ... Test title: GET Change State Operation Occurrence with "all_fields" attribute selector + ... Test objective: The objective is to retrieve Change State Operation Occurrence with "all_fields" attribute selector ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State OpOcc with all_fields attribute selector + Get Change State Operation Occurrence with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurance with "exclude_default" attribute selector +GET Change State Operation Occurrence with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.3.8 - ... Test title: GET Change State Operation Occurance with "exclude_default" attribute selector - ... Test objective: The objective is to retrieve Change State Operation Occurance 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 ... Pre-conditions: ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: - Get Change State OpOcc with all_fields attribute selector + Get Change State Operation Occurrence with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurance with "fields" attribute selector +GET Change State Operation Occurrence with "fields" attribute selector [Documentation] Test ID: 8.3.1.3.9 - ... Test title: GET Change State Operation Occurance with "fields" attribute selector - ... Test objective: The objective is to retrieve Change State Operation Occurance with fields attribute selector + ... Test title: GET Change State Operation Occurrence with "fields" attribute selector + ... Test objective: The objective is to retrieve Change State Operation Occurrence with fields attribute selector ... Pre-conditions: ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: - Get Change State OpOcc with fields attribute selector + Get Change State Operation Occurrence with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurance with "exclude_fields" attribute selector +GET Change State Operation Occurrence with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.3.10 - ... Test title: GET Change State Operation Occurance with "exclude_fields" attribute selector - ... Test objective: The objective is to retrieve Change State Operation Occurance with "exclude_fields" attribute selector + ... Test title: GET Change State Operation Occurrence with "exclude_fields" attribute selector + ... Test objective: The objective is to retrieve Change State Operation Occurrence with "exclude_fields" attribute selector ... Pre-conditions: ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: none - Get Change State OpOcc with exclude_fields attribute selector + Get Change State Operation Occurrence with exclude_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurance with Paged Response +GET Change State Operation Occurrence with Paged Response [Documentation] Test ID: 8.3.1.3.11 - ... Test title: GET Change State Operation Occurance with Paged Response - ... Test objective: The objective is to query Change State Operation Occurance to get 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: ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: - Get Change State OpOcc + Get Change State Operation Occurrence Check HTTP Response Status Code Is 200 Check LINK in Header -PUT Change State Operation Occurance - Method not implemented +PUT Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.3.12 - ... Test title: PUT Change State Operation Occurance - Method not implemented + ... Test title: PUT Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: ... Reference: clause 5.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: - Send Put request for Change State Operation Occurance + Send Put request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 -PATCH Change State Operation Occurance - Method not implemented +PATCH Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.3.13 - ... Test title: PATCH Change State Operation Occurance - Method not implemented + ... Test title: PATCH Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. ... Pre-conditions: ... Reference: clause 5.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: - Send Patch request for Change State Operation Occurance + Send Patch request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 -DELETE Change State Operation Occurance - Method not implemented +DELETE Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.3.14 - ... Test title: DELETE Change State Operation Occurance - Method not implemented + ... Test title: DELETE Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: ... Reference: clause 5.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: - Send Delete request for Change State Operation Occurance + Send Delete request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index f2a01f2aa..a6a71fa43 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -120,7 +120,7 @@ Send Delete request for NFV-MANO functional entity application state change ${output}= Output response Set Suite Variable ${response} ${output} -Send Post request for Change State Operation Occurance +Send Post request for Change State Operation Occurrence Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -128,7 +128,7 @@ Send Post request for Change State Operation Occurance ${output}= Output response Set Suite Variable ${response} ${output} -Get Change State OpOcc +Get Change State Operation Occurrence Log Query to GET information about multiple change state operation occurrences. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -137,7 +137,7 @@ Get Change State OpOcc ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State OpOcc with invalid filter +Get Change State Operation Occurrence with invalid filter Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -145,7 +145,7 @@ Get Change State OpOcc with invalid filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State OpOcc with invalid selector +Get Change State Operation Occurrence with invalid selector Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -153,7 +153,7 @@ Get Change State OpOcc with invalid selector ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State OpOcc with filter +Get Change State Operation Occurrence with filter Log Query information about multiple change state operation occurrences with attribute filters. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -162,7 +162,7 @@ Get Change State OpOcc with filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State OpOcc with all_fields attribute selector +Get Change State Operation Occurrence with all_fields attribute selector Log Queries information about multiple change state operation occurrences, using all_fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -170,7 +170,7 @@ Get Change State OpOcc with all_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get Change State OpOcc with fields attribute selector +Get Change State Operation Occurrence with fields attribute selector Log Queries information about multiple change state operation occurrences, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -178,7 +178,7 @@ Get Change State OpOcc with fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get Change State OpOcc with exclude_fields attribute selector +Get Change State Operation Occurrence with exclude_fields attribute selector Log Queries information about multiple change state operation occurrences, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -190,7 +190,7 @@ Check LINK in Header ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} -Send PUT request for Change State Operation Occurance +Send PUT request for 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":"${AUTHORIZATION}"} @@ -198,7 +198,7 @@ Send PUT request for Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PATCH request for Change State Operation Occurance +Send PATCH request for Change State Operation Occurrence log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -206,7 +206,7 @@ Send PATCH request for Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send DELETE request for Change State Operation Occurance +Send DELETE request for Change State Operation Occurrence log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -214,7 +214,7 @@ Send DELETE request for Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Post request for Individual Change State Operation Occurance +Send Post request for Individual Change State Operation Occurrence Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -222,7 +222,7 @@ Send Post request for Individual Change State Operation Occurance ${output}= Output response Set Suite Variable ${response} ${output} -Get Individual Change State OpOcc +Get Individual Change State Operation Occurrence Log Query to GET information about individual change state operation occurrences. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -231,7 +231,7 @@ Get Individual Change State OpOcc ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PUT request for Individual Change State Operation Occurance +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":"${AUTHORIZATION}"} @@ -239,7 +239,7 @@ Send PUT request for Individual Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PATCH request for Individual Change State Operation Occurance +Send PATCH request for Individual Change State Operation Occurrence log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -247,7 +247,7 @@ Send PATCH request for Individual Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send DELETE request for Individual Change State Operation Occurance +Send DELETE request for Individual Change State Operation Occurrence log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -255,7 +255,7 @@ Send DELETE request for Individual Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Post request for NFV-MANO Serive Interface +Send Post request for NFV-MANO Service Interface Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -263,7 +263,7 @@ Send Post request for NFV-MANO Serive Interface ${output}= Output response Set Suite Variable ${response} ${output} -Get NFV-MANO Serive Interface +Get NFV-MANO Service Interface Log Query to GET information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -272,7 +272,7 @@ Get NFV-MANO Serive Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Serive Interface with invalid filter +Get NFV-MANO Service Interface with invalid filter Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -280,7 +280,7 @@ Get NFV-MANO Serive Interface with invalid filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Serive Interface with invalid selector +Get NFV-MANO Service Interface with invalid selector Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -288,7 +288,7 @@ Get NFV-MANO Serive Interface with invalid selector ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Serive Interface with filter +Get NFV-MANO Service Interface with filter Log Query information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity with attribute filters. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -297,7 +297,7 @@ Get NFV-MANO Serive Interface with filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Serive Interface with all_fields attribute selector +Get NFV-MANO Service Interface with all_fields attribute selector Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using all_fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -305,7 +305,7 @@ Get NFV-MANO Serive Interface with all_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get NFV-MANO Serive Interface with fields attribute selector +Get NFV-MANO Service Interface with fields attribute selector Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -313,7 +313,7 @@ Get NFV-MANO Serive Interface with fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get NFV-MANO Serive Interface with exclude_fields attribute selector +Get NFV-MANO Service Interface with exclude_fields attribute selector Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -321,7 +321,7 @@ Get NFV-MANO Serive Interface with exclude_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Send PUT request for NFV-MANO Serive Interface +Send PUT request for NFV-MANO Service Interface 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":"${AUTHORIZATION}"} @@ -329,7 +329,7 @@ Send PUT request for NFV-MANO Serive Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PATCH request for NFV-MANO Serive Interface +Send PATCH request for NFV-MANO Service Interface log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -337,7 +337,7 @@ Send PATCH request for NFV-MANO Serive Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send DELETE request for NFV-MANO Serive Interface +Send DELETE request for NFV-MANO Service Interface log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -345,7 +345,7 @@ Send DELETE request for NFV-MANO Serive Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Post request for Individual NFV-MANO Serive Interface +Send Post request for Individual NFV-MANO Service Interface Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -353,7 +353,7 @@ Send Post request for Individual NFV-MANO Serive Interface ${output}= Output response Set Suite Variable ${response} ${output} -Get Individual NFV-MANO Serive Interface +Get Individual NFV-MANO Service Interface Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -361,7 +361,7 @@ Get Individual NFV-MANO Serive Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Put request for Individual NFV-MANO Serive Interface +Send Put request for Individual NFV-MANO Service Interface 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":"${AUTHORIZATION}"} @@ -369,7 +369,7 @@ Send Put request for Individual NFV-MANO Serive Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Patch request for Individual NFV-MANO Serive 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}"} @@ -379,7 +379,7 @@ Send Patch request for Individual NFV-MANO Serive Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Delete request for Individual NFV-MANO Serive Interface +Send Delete request for Individual NFV-MANO Service Interface log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot index 3c88c58d8..4badcf112 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot @@ -8,181 +8,181 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** -POST NFV-MANO Serive Interface - Method not implemented +POST NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.1 - ... Test title: POST NFV-MANO Serive Interface - Method not implemented + ... Test title: POST 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.10.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Post request for NFV-MANO Serive Interface + Send Post request for NFV-MANO Service Interface Check HTTP Response Status Code Is 405 -GET NFV-MANO Serive Interface +GET NFV-MANO Service Interface [Documentation] Test ID: 8.3.1.5.2 - ... Test title: GET NFV-MANO Serive Interface + ... Test title: GET NFV-MANO Service Interface ... Test objective: The objective is to query status information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface + Get NFV-MANO Service Interface Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Serive Interface - invalid attribute-based filter +GET NFV-MANO Service Interface - invalid attribute-based filter [Documentation] Test ID: 8.3.1.5.3 - ... Test title: GET NFV-MANO Serive Interface - invalid attribute-based filter - ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... Test title: GET NFV-MANO Service Interface - invalid attribute-based filter + ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interface 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface with invalid filter + Get NFV-MANO Service Interface with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET NFV-MANO Serive Interface - invalid attribute selector +GET NFV-MANO Service Interface - invalid attribute selector [Documentation] Test ID: 8.3.1.5.4 - ... Test title: GET NFV-MANO Serive Interface - invalid attribute selector - ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... Test title: GET NFV-MANO Service Interface - invalid attribute selector + ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interface 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface with invalid selector + Get NFV-MANO Service Interface with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET NFV-MANO Serive Interface - Bad Request Response too Big +GET NFV-MANO Service Interface - Bad Request Response too Big [Documentation] Test ID: 8.3.1.5.5 - ... Test title: GET NFV-MANO Serive Interface - Bad Request Response too Big - ... Test objective: The objective is to test that the retrieval of NFV-MANO Serive Interface fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... Test title: GET NFV-MANO Service Interface - Bad Request Response too Big + ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interface 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface + Get NFV-MANO Service Interface Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET NFV-MANO Serive Interface with attribute-based filter +GET NFV-MANO Service Interface with attribute-based filter [Documentation] Test ID: 8.3.1.5.6 - ... Test title: GET NFV-MANO Serive Interface with attribute-based filter + ... Test title: GET NFV-MANO Service Interface 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 ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface with filter + Get NFV-MANO Service Interface with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Serive Interface with "all_fields" attribute selector +GET NFV-MANO Service Interface with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.5.7 - ... Test title: GET NFV-MANO Serive Interface with "all_fields" attribute selector - ... Test objective: The objective is to retrieve NFV-MANO Serive Interface 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 Interface with "all_fields" attribute selector ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface with all_fields attribute selector + Get NFV-MANO Service Interface with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Serive Interface with "exclude_default" attribute selector +GET NFV-MANO Service Interface with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.5.8 - ... Test title: GET NFV-MANO Serive Interface with "exclude_default" attribute selector - ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "exclude_default" attribute selector + ... Test title: GET NFV-MANO Service Interface with "exclude_default" attribute selector + ... Test objective: The objective is to retrieve NFV-MANO Service Interface with "exclude_default" attribute selector ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface with all_fields attribute selector + Get NFV-MANO Service Interface with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Serive Interface with "fields" attribute selector +GET NFV-MANO Service Interface with "fields" attribute selector [Documentation] Test ID: 8.3.1.5.9 - ... Test title: GET NFV-MANO Serive Interface with "fields" attribute selector - ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with fields attribute selector + ... Test title: GET NFV-MANO Service Interface with "fields" attribute selector + ... Test objective: The objective is to retrieve NFV-MANO Service Interface with fields attribute selector ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface with fields attribute selector + Get NFV-MANO Service Interface with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Serive Interface with "exclude_fields" attribute selector +GET NFV-MANO Service Interface with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.5.10 - ... Test title: GET NFV-MANO Serive Interface with "exclude_fields" attribute selector - ... Test objective: The objective is to retrieve NFV-MANO Serive Interface with "exclude_fields" attribute selector + ... Test title: GET NFV-MANO Service Interface with "exclude_fields" attribute selector + ... Test objective: The objective is to retrieve NFV-MANO Service Interface with "exclude_fields" attribute selector ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface with exclude_fields attribute selector + Get NFV-MANO Service Interface with exclude_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Serive Interface with Paged Response +GET NFV-MANO Service Interface with Paged Response [Documentation] Test ID: 8.3.1.5.11 - ... Test title: GET NFV-MANO Serive Interface with Paged Response - ... Test objective: The objective is to query NFV-MANO Serive Interface to get Paged Response. + ... Test title: GET NFV-MANO Service Interface 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Serive Interface + Get NFV-MANO Service Interface Check HTTP Response Status Code Is 200 Check LINK in Header -PUT NFV-MANO Serive Interface - Method not implemented +PUT NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.12 - ... Test title: PUT NFV-MANO Serive Interface - Method not implemented + ... Test title: PUT 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.10.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Put request for NFV-MANO Serive Interface + Send Put request for NFV-MANO Service Interface Check HTTP Response Status Code Is 405 -PATCH NFV-MANO Serive Interface - Method not implemented +PATCH NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.13 - ... Test title: PATCH NFV-MANO Serive Interface - Method not implemented + ... Test title: PATCH NFV-MANO Service Interface - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Patch request for NFV-MANO Serive Interface + Send Patch request for NFV-MANO Service Interface Check HTTP Response Status Code Is 405 -DELETE NFV-MANO Serive Interface - Method not implemented +DELETE NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.5.14 - ... Test title: DELETE NFV-MANO Serive Interface - Method not implemented + ... Test title: DELETE 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.10.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Delete request for NFV-MANO Serive Interface + Send Delete request for NFV-MANO Service Interface Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From 15aa8b084a1c992e4560283ccd82910148c7776c Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 3 Sep 2020 16:04:38 +0500 Subject: [PATCH 089/116] added new test case in NFVMANOEntity --- .../NFVMANOEntity.robot | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index edbdfe53f..d3b9e2fd4 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -33,8 +33,22 @@ GET NFV-MANO entity Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoEntity -PUT NFV-MANO entity - Method not implemented +GET NFV-MANO entity - Not Found [Documentation] Test ID: 8.3.1.1.3 + ... 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 and perform the JSON schema validation of the failed operation HTTP response. + ... Pre-conditions: none + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO entity resource + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails + + +PUT NFV-MANO entity - Method not implemented + [Documentation] Test ID: 8.3.1.1.4 ... 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 @@ -46,7 +60,7 @@ PUT NFV-MANO entity - Method not implemented Check HTTP Response Status Code Is 405 PATCH NFV-MANO entity - [Documentation] Test ID: 8.3.1.1.4 + [Documentation] Test ID: 8.3.1.1.5 ... Test title: PATCH NFV-MANO entity ... Test objective: This method modifies the NFV-MANO entity resource ... Pre-conditions: NFV-MANO entity resource is already created. @@ -59,7 +73,7 @@ PATCH NFV-MANO entity Check HTTP Response Body Json Schema Is ManoConfigModifications PATCH NFV-MANO entity - Conflict - [Documentation] Test ID: 8.3.1.1.5 + [Documentation] Test ID: 8.3.1.1.6 ... 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. @@ -72,7 +86,7 @@ PATCH NFV-MANO entity - Conflict Check HTTP Response Body Json Schema Is ProblemDetails PATCH NFV-MANO entity - PreCondition Failed - [Documentation] Test ID: 8.3.1.1.6 + [Documentation] Test ID: 8.3.1.1.7 ... 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. @@ -85,7 +99,7 @@ PATCH NFV-MANO entity - PreCondition Failed Check HTTP Response Body Json Schema Is ProblemDetails DELETE NFV-MANO entity - Method not implemented - [Documentation] Test ID: 8.3.1.1.7 + [Documentation] Test ID: 8.3.1.1.8 ... 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 -- GitLab From bf31dc9753de88f235d98a8935e2d3cb5644b401 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 3 Sep 2020 17:46:17 +0500 Subject: [PATCH 090/116] fix typo --- .../NFVMANOEntity.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index d3b9e2fd4..113a69e6c 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -43,7 +43,7 @@ GET NFV-MANO entity - Not Found ... Applicability: none ... Post-Conditions: none GET NFV-MANO entity resource - Check HTTP Response Status Code Is 404 + Check HTTP Response Status Code Is 404 Check HTTP Response Body Json Schema Is ProblemDetails -- GitLab From fa4335f07a47923d4810ca27020e6bfab1f08c79 Mon Sep 17 00:00:00 2001 From: uihassan Date: Thu, 10 Sep 2020 10:14:41 +0500 Subject: [PATCH 091/116] added suggestion, fixed bugs and keywords mismatch --- .../ChangeInterfaceStateTask.robot | 2 +- .../ChangeNFVMANOEntityStateTask.robot | 2 +- .../ChangeStateOperationOccurance.robot | 34 ++++---- .../IndividualNFVMANOServiceInterface.robot | 78 +++++++++---------- .../IndividualPeerEntity.robot | 18 ++--- .../IndividualSubscription.robot | 2 +- .../NFVMANOCimKeywords.robot | 24 ++++-- .../PeerEntities.robot | 59 +++++++------- 8 files changed, 116 insertions(+), 103 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot index 76278ffc6..cbd81a3ce 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot @@ -19,7 +19,7 @@ POST Change interface state task ... Post-Conditions: none Send Post request for Change interface state task Check HTTP Response Status Code Is 202 - Check Operation Occurrence Id + Check HTTP Response Header Contains Location POST Change interface state task - Conflict [Documentation] Test ID: 8.3.1.7.2 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index a4a4b9935..c9bc8ec49 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -18,7 +18,7 @@ POST NFV-MANO functional entity application state change ... Post-Conditions: none Send Post request for NFV-MANO functional entity application state change Check HTTP Response Status Code Is 202 - Check Operation Occurrence Id + Check HTTP Response Header Contains Location POST NFV-MANO functional entity application state change - Conflict [Documentation] Test ID: 8.3.1.2.2 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot index 388272b51..b1163478a 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot @@ -102,11 +102,11 @@ GET Change State Operation Occurrence with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.3.8 ... 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 - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State Operation Occurrence with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc @@ -116,11 +116,11 @@ GET Change State Operation Occurrence with "fields" attribute selector [Documentation] Test ID: 8.3.1.3.9 ... Test title: GET Change State Operation Occurrence with "fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrence with fields attribute selector - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State Operation Occurrence with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc @@ -129,10 +129,10 @@ GET Change State Operation Occurrence with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.3.10 ... Test title: GET Change State Operation Occurrence with "exclude_fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrence with "exclude_fields" attribute selector - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: + ... Applicability: none ... Post-Conditions: none Get Change State Operation Occurrence with exclude_fields attribute selector Check HTTP Response Status Code Is 200 @@ -142,11 +142,11 @@ GET Change State Operation Occurrence with Paged Response [Documentation] Test ID: 8.3.1.3.11 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Change State Operation Occurrence Check HTTP Response Status Code Is 200 Check LINK in Header @@ -155,11 +155,11 @@ PUT Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.3.12 ... Test title: PUT Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 @@ -167,11 +167,11 @@ PATCH Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.3.13 ... Test title: PATCH Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Patch request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 @@ -179,10 +179,10 @@ DELETE Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.3.14 ... Test title: DELETE Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.8.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Delete request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot index f5815448d..8115bf4bb 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot @@ -8,90 +8,90 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** -POST Individual NFV-MANO Serive Interface - Method not implemented +POST Individual NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.6.1 - ... Test title: POST Individual NFV-MANO Serive 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: + ... Pre-conditions: none ... Reference: clause 5.5.11.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: - Send Post request for Individual NFV-MANO Serive Interface + ... Post-Conditions: none + Send Post request for Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 405 -GET Individual NFV-MANO Serive Interface +GET Individual NFV-MANO Service Interface [Documentation] Test ID: 8.3.1.6.2 - ... Test title: GET Individual NFV-MANO Serive 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. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: - Get Individual NFV-MANO Serive Interface + ... Applicability: none + ... Post-Conditions: none + Get Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterface -PUT Individual NFV-MANO Serive Interface - Method not implemented +PUT Individual NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.6.3 - ... Test title: PUT Individual NFV-MANO Serive 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: + ... Pre-conditions: none ... Reference: clause 5.5.11.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: - Send Put request for Individual NFV-MANO Serive Interface + ... Post-Conditions: none + Send Put request for Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 405 -PATCH Individual NFV-MANO Serive Interface +PATCH Individual NFV-MANO Service Interface [Documentation] Test ID: 8.3.1.6.4 - ... Test title: PATCH Individual NFV-MANO Serive Interface - ... Test objective: This method modifies the Individual NFV-MANO Serive Interface resource - ... Pre-conditions: Individual NFV-MANO Serive Interface resource is already created. + ... Test title: PATCH Individual NFV-MANO Service Interface + ... Test objective: This method modifies the Individual NFV-MANO Service Interface resource + ... Pre-conditions: Individual NFV-MANO Service Interface resource is already created. ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Individual NFV-MANO Serive Interface is modified by the operation - Send Patch request for Individual NFV-MANO Serive Interface + ... Post-Conditions: The Individual NFV-MANO Service Interface is modified by the operation + Send Patch request for Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaceModifications -PATCH Individual NFV-MANO Serive Interface - Conflict +PATCH Individual NFV-MANO Service Interface - Conflict [Documentation] Test ID: 8.3.1.6.5 - ... Test title: PATCH Individual NFV-MANO Serive Interface - Conflict - ... Test objective: The objective is to test that the modification of the Individual NFV-MANO Serive Interface resource failed due to a conflict with the state of the Individual NFV-MANO Serive Interface resource and perform the JSON schema validation of the failed operation HTTP response. - ... Pre-conditions: Individual NFV-MANO Serive Interface resource is already created. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Individual NFV-MANO Serive Interface is not modified by the operation - Send Patch request for Individual NFV-MANO Serive Interface + ... Post-Conditions: The Individual NFV-MANO Service Interface is not modified by the operation + Send Patch request for Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 409 Check HTTP Response Body Json Schema Is ProblemDetails -PATCH Individual NFV-MANO Serive Interface - PreCondition Failed +PATCH Individual NFV-MANO Service Interface - PreCondition Failed [Documentation] Test ID: 8.3.1.6.6 - ... Test title: PATCH Individual NFV-MANO Serive Interface - PreCondition Failed - ... Test objective: The objective is to test that the modification of the Individual NFV-MANO Serive 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 Serive Interface resource is already created. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The Individual NFV-MANO Serive Interface is not modified by the operation - Send Patch request for Individual NFV-MANO Serive Interface + ... Post-Conditions: The Individual NFV-MANO Service Interface is not modified by the operation + Send Patch request for Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 412 Check HTTP Response Body Json Schema Is ProblemDetails -DELETE Individual NFV-MANO Serive Interface - Method not implemented +DELETE Individual NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.6.7 - ... Test title: DELETE Individual NFV-MANO Serive 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: + ... Pre-conditions: none ... Reference: clause 5.5.11.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: - Send Delete request for Individual NFV-MANO Serive Interface + ... Post-Conditions: none + Send Delete request for Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot index 1eaf748e1..e8b7bc85d 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot @@ -12,11 +12,11 @@ POST Individual Peer Entity - Method not implemented [Documentation] Test ID: 8.3.1.9.1 ... Test title: POST Individual Peer Entity - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.14.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Post request for Individual Peer Entity Check HTTP Response Status Code Is 405 @@ -24,11 +24,11 @@ GET Individual Peer Entity [Documentation] Test ID: 8.3.1.9.2 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Individual Peer Entity Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntity @@ -37,11 +37,11 @@ PUT Individual Peer Entity - Method not implemented [Documentation] Test ID: 8.3.1.9.3 ... Test title: PUT Individual Peer Entity - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.14.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for Individual Peer Entity Check HTTP Response Status Code Is 405 @@ -88,10 +88,10 @@ DELETE Individual Peer Entity - Method not implemented [Documentation] Test ID: 8.3.1.9.7 ... Test title: DELETE Individual Peer Entity - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.14.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Delete request for Individual Peer Entity Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot index 26f01755e..8801e21f1 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot @@ -62,7 +62,7 @@ POST Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.1.11.5 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index a6a71fa43..427eef2c9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -214,7 +214,7 @@ Send DELETE request for Change State Operation Occurrence ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Post request for Individual Change State Operation Occurrence +Send Post request for Individual Change State Operation Occurance Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -222,7 +222,7 @@ Send Post request for Individual Change State Operation Occurrence ${output}= Output response Set Suite Variable ${response} ${output} -Get Individual Change State Operation Occurrence +Get Individual Change State OpOcc Log Query to GET information about individual change state operation occurrences. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -231,7 +231,7 @@ Get Individual Change State Operation Occurrence ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PUT request for Individual Change State Operation Occurrence +Send Put request for Individual Change State Operation Occurance 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":"${AUTHORIZATION}"} @@ -239,7 +239,7 @@ Send PUT request for Individual Change State Operation Occurrence ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PATCH request for Individual Change State Operation Occurrence +Send Patch request for Individual Change State Operation Occurance log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -247,7 +247,7 @@ Send PATCH request for Individual Change State Operation Occurrence ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send DELETE request for Individual Change State Operation Occurrence +Send Delete request for Individual Change State Operation Occurance log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -765,4 +765,16 @@ Check Postcondition Subscription is not Created GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} ${output}= Output response Set Suite Variable @{response} ${output} - Check HTTP Response Status Code Is 404 \ No newline at end of file + Check HTTP Response Status Code Is 404 + +Check Postcondition Peer Entity Resource is created + Log Check Postcondition Peer Entity resource + Set Headers {"Accept": "${ACCEPT_JSON}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Status Code Is 200 + +Check HTTP Response Header Contains Location + ${loc}= Get Value From Json ${response['headers']} $..Location + Should Not Be Empty ${loc} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index e40ee058a..4423fa77b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -11,16 +11,17 @@ Library MockServerLibrary POST Peer Entity [Documentation] Test ID: 8.3.1.8.1 ... 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. - ... Pre-conditions: + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: Peer Entity is created Send Post request for Peer Entity Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is PeerEntity - Check Operation Occurrence Id + Check HTTP Response Header Contains Location + Check Postcondition Peer Entity Resource is created GET Peer Entity [Documentation] Test ID: 8.3.1.8.2 @@ -29,8 +30,8 @@ GET Peer Entity ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -42,8 +43,8 @@ GET Peer Entity - invalid attribute-based filter ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -55,8 +56,8 @@ GET Peer Entity - invalid attribute selector ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -68,8 +69,8 @@ GET Peer Entity - Bad Request Response too Big ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -81,8 +82,8 @@ GET Peer Entity with attribute-based filter ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -94,8 +95,8 @@ GET Peer Entity with "all_fields" attribute selector ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -107,8 +108,8 @@ GET Peer Entity with "exclude_default" attribute selector ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -121,8 +122,8 @@ GET Peer Entity with "fields" attribute selector ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -134,7 +135,7 @@ GET Peer Entity with "exclude_fields" attribute selector ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: + ... Applicability: none ... Post-Conditions: none Get Peer Entity with exclude_fields attribute selector Check HTTP Response Status Code Is 200 @@ -147,8 +148,8 @@ GET Peer Entity with Paged Response ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO - ... Applicability: - ... Post-Conditions: + ... Applicability: none + ... Post-Conditions: none Get Peer Entity Check HTTP Response Status Code Is 200 Check LINK in Header @@ -157,11 +158,11 @@ PUT Peer Entity - Method not implemented [Documentation] Test ID: 8.3.1.8.12 ... Test title: PUT Peer Entity - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.13.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Put request for Peer Entity Check HTTP Response Status Code Is 405 @@ -169,11 +170,11 @@ PATCH Peer Entity - Method not implemented [Documentation] Test ID: 8.3.1.8.13 ... Test title: PATCH Peer Entity - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. - ... Pre-conditions: + ... Pre-conditions:none ... Reference: clause 5.5.13.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Patch request for Peer Entity Check HTTP Response Status Code Is 405 @@ -181,10 +182,10 @@ DELETE Peer Entity - Method not implemented [Documentation] Test ID: 8.3.1.8.14 ... Test title: DELETE Peer Entity - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. - ... Pre-conditions: + ... Pre-conditions: none ... Reference: clause 5.5.13.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: + ... Post-Conditions: none Send Delete request for Peer Entity Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From 9f98f8481726236e527577f1d10bba3272d9d62d Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 9 Sep 2020 18:02:43 +0200 Subject: [PATCH 092/116] fixed typos and added missing documentation --- .../NFVMANOCimKeywords.robot | 20 +++---- .../PeerEntities.robot | 54 +++++++++---------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 427eef2c9..7db5af64e 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -440,7 +440,7 @@ Send Post request for Peer Entity ${output}= Output response Set Suite Variable ${response} ${output} -Get Peer Entity +Get Peer Entities Log Query to GET information about multiple peer entities. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -449,7 +449,7 @@ Get Peer Entity ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Peer Entity with invalid filter +Get Peer Entities with invalid filter Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -457,7 +457,7 @@ Get Peer Entity with invalid filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Peer Entity with invalid selector +Get Peer Entities with invalid selector Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -465,7 +465,7 @@ Get Peer Entity with invalid selector ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Peer Entity with filter +Get Peer Entities with filter Log Query information about multiple peer entities with attribute filters. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -474,7 +474,7 @@ Get Peer Entity with filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Peer Entity with all_fields attribute selector +Get Peer Entities with all_fields attribute selector Log Queries information about multiple peer entities, using all_fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -482,7 +482,7 @@ Get Peer Entity with all_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get Peer Entity with fields attribute selector +Get Peer Entities with fields attribute selector Log Queries information about multiple peer entities, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -490,7 +490,7 @@ Get Peer Entity with fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get Peer Entity with exclude_fields attribute selector +Get Peer Entities with exclude_fields attribute selector Log Queries information about multiple peer entities, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -498,7 +498,7 @@ Get Peer Entity with exclude_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Send PUT request for Peer Entity +Send PUT request for Peer Entities 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":"${AUTHORIZATION}"} @@ -506,7 +506,7 @@ Send PUT request for Peer Entity ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PATCH request for Peer Entity +Send PATCH request for Peer Entities log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -514,7 +514,7 @@ Send PATCH request for Peer Entity ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send DELETE request for Peer Entity +Send DELETE request for Peer Entities log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index 4423fa77b..b1adf732e 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -23,10 +23,10 @@ POST Peer Entity Check HTTP Response Header Contains Location Check Postcondition Peer Entity Resource is created -GET Peer Entity +GET Peer Entities [Documentation] Test ID: 8.3.1.8.2 - ... Test title: GET Peer Entity - ... Test objective: The objective is to queries information and configuration in the producer NFV-MANO functional entity with regards to multiple 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. ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -36,9 +36,9 @@ GET Peer Entity Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities -GET Peer Entity - invalid attribute-based filter +GET Peer Entities - invalid attribute-based filter [Documentation] Test ID: 8.3.1.8.3 - ... Test title: GET Peer Entity - 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 [5] V3.3.1 @@ -49,9 +49,9 @@ GET Peer Entity - invalid attribute-based filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Peer Entity - invalid attribute selector +GET Peer Entities - invalid attribute selector [Documentation] Test ID: 8.3.1.8.4 - ... Test title: GET Peer Entity - 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 [5] V3.3.1 @@ -62,9 +62,9 @@ GET Peer Entity - invalid attribute selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Peer Entity - Bad Request Response too Big +GET Peer Entities - Bad Request Response too Big [Documentation] Test ID: 8.3.1.8.5 - ... Test title: GET Peer Entity - 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 [5] V3.3.1 @@ -75,9 +75,9 @@ GET Peer Entity - Bad Request Response too Big Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Peer Entity with attribute-based filter +GET Peer Entities with attribute-based filter [Documentation] Test ID: 8.3.1.8.6 - ... Test title: GET Peer Entity 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 ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 @@ -88,9 +88,9 @@ GET Peer Entity with attribute-based filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities -GET Peer Entity with "all_fields" attribute selector +GET Peer Entities with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.8.7 - ... Test title: GET Peer Entity 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 ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 @@ -101,9 +101,9 @@ GET Peer Entity with "all_fields" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities -GET Peer Entity with "exclude_default" attribute selector +GET Peer Entities with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.8.8 - ... Test title: GET Peer Entity 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 ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 @@ -115,9 +115,9 @@ GET Peer Entity with "exclude_default" attribute selector Check HTTP Response Body Json Schema Is PeerEntities -GET Peer Entity with "fields" attribute selector +GET Peer Entities with "fields" attribute selector [Documentation] Test ID: 8.3.1.8.9 - ... Test title: GET Peer Entity 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 ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 @@ -128,16 +128,16 @@ GET Peer Entity with "fields" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities -GET Peer Entity with "exclude_fields" attribute selector +GET Peer Entities with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.8.10 - ... Test title: GET Peer Entity 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 ... Pre-conditions: At least one Peer Entity is already created. ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity with exclude_fields attribute selector + Get Peer Entities with exclude_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -154,9 +154,9 @@ GET Peer Entity with Paged Response Check HTTP Response Status Code Is 200 Check LINK in Header -PUT Peer Entity - Method not implemented +PUT Peer Entities - Method not implemented [Documentation] Test ID: 8.3.1.8.12 - ... Test title: PUT Peer Entity - 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 [5] V3.3.1 @@ -166,9 +166,9 @@ PUT Peer Entity - Method not implemented Send Put request for Peer Entity Check HTTP Response Status Code Is 405 -PATCH Peer Entity - Method not implemented +PATCH Peer Entities - Method not implemented [Documentation] Test ID: 8.3.1.8.13 - ... Test title: PATCH Peer Entity - 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 [5] V3.3.1 @@ -178,9 +178,9 @@ PATCH Peer Entity - Method not implemented Send Patch request for Peer Entity Check HTTP Response Status Code Is 405 -DELETE Peer Entity - Method not implemented +DELETE Peer Entities - Method not implemented [Documentation] Test ID: 8.3.1.8.14 - ... Test title: DELETE Peer Entity - 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 [5] V3.3.1 @@ -188,4 +188,4 @@ DELETE Peer Entity - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for Peer Entity - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 -- GitLab From 892598a26216510d4175fe9df87398e15793f593 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 9 Sep 2020 18:30:20 +0200 Subject: [PATCH 093/116] fixed typos and updated NFVMANOCim tests --- .../ChangeNFVMANOEntityStateTask.robot | 2 +- ... => ChangeStateOperationOccurrences.robot} | 74 +++++++++---------- ...vidualStateChangeOpperationOccurance.robot | 32 ++++---- .../NFVMANOCimKeywords.robot | 22 +++--- 4 files changed, 65 insertions(+), 65 deletions(-) rename SOL009/NFVManoConfigurationAndInformationManagement-API/{ChangeStateOperationOccurance.robot => ChangeStateOperationOccurrences.robot} (71%) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index c9bc8ec49..4de972ff3 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -23,7 +23,7 @@ POST NFV-MANO functional entity application state change POST NFV-MANO functional entity application state change - Conflict [Documentation] Test ID: 8.3.1.2.2 ... 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 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. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot similarity index 71% rename from SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot rename to SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot index b1163478a..052f60013 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurance.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot @@ -8,97 +8,97 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** -POST Change State Operation Occurrence - Method not implemented +POST Change State Operation Occurrences - Method not implemented [Documentation] Test ID: 8.3.1.3.1 - ... Test title: POST Change State Operation Occurrence - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Post request for Change State Operation Occurrence + Send Post request for Change State Operation Occurrences Check HTTP Response Status Code Is 405 -GET Change State Operation Occurrence +GET Change State Operation Occurrences [Documentation] Test ID: 8.3.1.3.2 - ... Test title: GET Change State Operation Occurrence + ... Test title: GET Change State Operation Occurrences ... Test objective: The objective is to query status information about multiple change state operation occurrences. ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence + Get Change State Operation Occurrences Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOccs -GET Change State Operation Occurrence - invalid attribute-based filter +GET Change State Operation Occurrences - invalid attribute-based filter [Documentation] Test ID: 8.3.1.3.3 - ... Test title: GET Change State Operation Occurrence - invalid attribute-based filter - ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrence fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence with invalid filter + Get Change State Operation Occurrences with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Change State Operation Occurrence - invalid attribute selector +GET Change State Operation Occurrences - invalid attribute selector [Documentation] Test ID: 8.3.1.3.4 - ... Test title: GET Change State Operation Occurrence - invalid attribute selector - ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrence fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence with invalid selector + Get Change State Operation Occurrences with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Change State Operation Occurrence - Bad Request Response too Big +GET Change State Operation Occurrences - Bad Request Response too Big [Documentation] Test ID: 8.3.1.3.5 - ... Test title: GET Change State Operation Occurrence - Bad Request Response too Big - ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrence fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence + Get Change State Operation Occurrences Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET Change State Operation Occurrence with attribute-based filter +GET Change State Operation Occurrences with attribute-based filter [Documentation] Test ID: 8.3.1.3.6 - ... Test title: GET Change State Operation Occurrence 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 ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence with filter + Get Change State Operation Occurrences with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurrence with "all_fields" attribute selector +GET Change State Operation Occurrences with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.3.7 - ... Test title: GET Change State Operation Occurrence with "all_fields" attribute selector - ... Test objective: The objective is to retrieve Change State Operation Occurrence 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 ... Pre-conditions: none ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence with all_fields attribute selector + Get Change State Operation Occurrences with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurrence with "exclude_default" attribute selector +GET Change State Operation Occurrences with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.3.8 ... 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 @@ -112,7 +112,7 @@ GET Change State Operation Occurrence with "exclude_default" attribute selector Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurrence with "fields" attribute selector +GET Change State Operation Occurrences with "fields" attribute selector [Documentation] Test ID: 8.3.1.3.9 ... Test title: GET Change State Operation Occurrence with "fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrence with fields attribute selector @@ -125,7 +125,7 @@ GET Change State Operation Occurrence with "fields" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurrence with "exclude_fields" attribute selector +GET Change State Operation Occurrences with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.3.10 ... Test title: GET Change State Operation Occurrence with "exclude_fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrence with "exclude_fields" attribute selector @@ -134,11 +134,11 @@ GET Change State Operation Occurrence with "exclude_fields" attribute selector ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence with exclude_fields attribute selector + Get Change State Operation Occurrences with exclude_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -GET Change State Operation Occurrence with Paged Response +GET Change State Operation Occurrences with Paged Response [Documentation] Test ID: 8.3.1.3.11 ... 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. @@ -151,9 +151,9 @@ GET Change State Operation Occurrence with Paged Response Check HTTP Response Status Code Is 200 Check LINK in Header -PUT Change State Operation Occurrence - Method not implemented +PUT Change State Operation Occurrences - Method not implemented [Documentation] Test ID: 8.3.1.3.12 - ... Test title: PUT Change State Operation Occurrence - 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 [5] V3.3.1 @@ -163,9 +163,9 @@ PUT Change State Operation Occurrence - Method not implemented Send Put request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 -PATCH Change State Operation Occurrence - Method not implemented +PATCH Change State Operation Occurrences - Method not implemented [Documentation] Test ID: 8.3.1.3.13 - ... Test title: PATCH Change State Operation Occurrence - 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 [5] V3.3.1 @@ -175,9 +175,9 @@ PATCH Change State Operation Occurrence - Method not implemented Send Patch request for Change State Operation Occurrence Check HTTP Response Status Code Is 405 -DELETE Change State Operation Occurrence - Method not implemented +DELETE Change State Operation Occurrences - Method not implemented [Documentation] Test ID: 8.3.1.3.14 - ... Test title: DELETE Change State Operation Occurrence - 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 [5] V3.3.1 @@ -185,4 +185,4 @@ DELETE Change State Operation Occurrence - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for Change State Operation Occurrence - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot index dd5e63246..ccd61f63b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot @@ -8,63 +8,63 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** -POST Individual Change State Operation Occurance - Method not implemented +POST Individual Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.4.1 - ... Test title: POST Individual Change State Operation Occurance - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Post request for Individual Change State Operation Occurance + Send Post request for Individual Change State Operation Occurrence Check HTTP Response Status Code Is 405 -GET Individual Change State Operation Occurance +GET Individual Change State Operation Occurrence [Documentation] Test ID: 8.3.1.4.2 - ... Test title: GET Individual Change State Operation Occurance - ... Test objective: The objective is to query status information about Individual change state operation occurrences. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Individual Change State OpOcc + Get Individual Change State Operation Occurrence Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -PUT Individual Change State Operation Occurance - Method not implemented +PUT Individual Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.4.3 - ... Test title: PUT Individual Change State Operation Occurance - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Put request for Individual Change State Operation Occurance + Send Put request for Individual Change State Operation Occurrence Check HTTP Response Status Code Is 405 -PATCH Individual Change State Operation Occurance - Method not implemented +PATCH Individual Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.4.4 - ... Test title: PATCH Individual Change State Operation Occurance - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Patch request for Individual Change State Operation Occurance + Send Patch request for Individual Change State Operation Occurrence Check HTTP Response Status Code Is 405 -DELETE Individual Change State Operation Occurance - Method not implemented +DELETE Individual Change State Operation Occurrence - Method not implemented [Documentation] Test ID: 8.3.1.4.5 - ... Test title: DELETE Individual Change State Operation Occurance - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Delete request for Individual Change State Operation Occurance + Send Delete request for Individual Change State Operation Occurrence Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 7db5af64e..bc59060fa 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -120,7 +120,7 @@ Send Delete request for NFV-MANO functional entity application state change ${output}= Output response Set Suite Variable ${response} ${output} -Send Post request for Change State Operation Occurrence +Send Post request for Change State Operation Occurrences Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -128,7 +128,7 @@ Send Post request for Change State Operation Occurrence ${output}= Output response Set Suite Variable ${response} ${output} -Get Change State Operation Occurrence +Get Change State Operation Occurrences Log Query to GET information about multiple change state operation occurrences. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -137,7 +137,7 @@ Get Change State Operation Occurrence ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State Operation Occurrence with invalid filter +Get Change State Operation Occurrences with invalid filter Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -145,7 +145,7 @@ Get Change State Operation Occurrence with invalid filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State Operation Occurrence with invalid selector +Get Change State Operation Occurrences with invalid selector Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -153,7 +153,7 @@ Get Change State Operation Occurrence with invalid selector ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State Operation Occurrence with filter +Get Change State Operation Occurrences with filter Log Query information about multiple change state operation occurrences with attribute filters. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -162,7 +162,7 @@ Get Change State Operation Occurrence with filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get Change State Operation Occurrence with all_fields attribute selector +Get Change State Operation Occurrences with all_fields attribute selector Log Queries information about multiple change state operation occurrences, using all_fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -170,7 +170,7 @@ Get Change State Operation Occurrence with all_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get Change State Operation Occurrence with fields attribute selector +Get Change State Operation Occurrences with fields attribute selector Log Queries information about multiple change state operation occurrences, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -178,7 +178,7 @@ Get Change State Operation Occurrence with fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get Change State Operation Occurrence with exclude_fields attribute selector +Get Change State Operation Occurrences with exclude_fields attribute selector Log Queries information about multiple change state operation occurrences, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -190,7 +190,7 @@ Check LINK in Header ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} -Send PUT request for Change State Operation Occurrence +Send PUT request for Change State Operation Occurrences 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":"${AUTHORIZATION}"} @@ -198,7 +198,7 @@ Send PUT request for Change State Operation Occurrence ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PATCH request for Change State Operation Occurrence +Send PATCH request for Change State Operation Occurrences log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -206,7 +206,7 @@ Send PATCH request for Change State Operation Occurrence ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send DELETE request for Change State Operation Occurrence +Send DELETE request for Change State Operation Occurrences log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} -- GitLab From 11670aa4a84ea6180a32c007743444973fb4a7ea Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 9 Sep 2020 18:30:58 +0200 Subject: [PATCH 094/116] renamed NFVMANOCim robot file --- ...rance.robot => IndividualStateChangeOperationOccurrence.robot} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename SOL009/NFVManoConfigurationAndInformationManagement-API/{IndividualStateChangeOpperationOccurance.robot => IndividualStateChangeOperationOccurrence.robot} (100%) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot similarity index 100% rename from SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOpperationOccurance.robot rename to SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot -- GitLab From ea3a36e77c2adbaa6d343d4a95832a04bddd0068 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 9 Sep 2020 18:36:10 +0200 Subject: [PATCH 095/116] fixed NFVMANOCim NFVMANO interface(s) --- .../IndividualNFVMANOServiceInterface.robot | 2 +- .../NFVMANOCimKeywords.robot | 22 ++--- .../NFVMANOServiceInterface.robot | 96 +++++++++---------- 3 files changed, 60 insertions(+), 60 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot index 8115bf4bb..2d2417ffd 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot @@ -94,4 +94,4 @@ DELETE Individual NFV-MANO Service Interface - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for Individual NFV-MANO Service Interface - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index bc59060fa..9f556dda6 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -255,7 +255,7 @@ Send Delete request for Individual Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Post request for NFV-MANO Service Interface +Send Post request for NFV-MANO Service Interfaces Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -263,7 +263,7 @@ Send Post request for NFV-MANO Service Interface ${output}= Output response Set Suite Variable ${response} ${output} -Get NFV-MANO Service Interface +Get NFV-MANO Service Interfaces Log Query to GET information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -272,7 +272,7 @@ Get NFV-MANO Service Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Service Interface with invalid filter +Get NFV-MANO Service Interfaces with invalid filter Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -280,7 +280,7 @@ Get NFV-MANO Service Interface with invalid filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Service Interface with invalid selector +Get NFV-MANO Service Interfaces with invalid selector Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Log Execute Query and validate response @@ -288,7 +288,7 @@ Get NFV-MANO Service Interface with invalid selector ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Service Interface with filter +Get NFV-MANO Service Interfaces with filter Log Query information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity with attribute filters. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -297,7 +297,7 @@ Get NFV-MANO Service Interface with filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Get NFV-MANO Service Interface with all_fields attribute selector +Get NFV-MANO Service Interfaces with all_fields attribute selector Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using all_fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -305,7 +305,7 @@ Get NFV-MANO Service Interface with all_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get NFV-MANO Service Interface with fields attribute selector +Get NFV-MANO Service Interfaces with fields attribute selector Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -313,7 +313,7 @@ Get NFV-MANO Service Interface with fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Get NFV-MANO Service Interface with exclude_fields attribute selector +Get NFV-MANO Service Interfaces with exclude_fields attribute selector Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using fields Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -321,7 +321,7 @@ Get NFV-MANO Service Interface with exclude_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Send PUT request for NFV-MANO Service Interface +Send PUT request for NFV-MANO Service Interfaces 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":"${AUTHORIZATION}"} @@ -329,7 +329,7 @@ Send PUT request for NFV-MANO Service Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send PATCH request for NFV-MANO Service Interface +Send PATCH request for NFV-MANO Service Interfaces log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -337,7 +337,7 @@ Send PATCH request for NFV-MANO Service Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send DELETE request for NFV-MANO Service Interface +Send DELETE request for NFV-MANO Service Interfaces log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot index 4badcf112..ba1c97bf2 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot @@ -8,181 +8,181 @@ Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} Library MockServerLibrary *** Test Cases *** -POST NFV-MANO Service Interface - Method not implemented +POST NFV-MANO Service Interfaces - Method not implemented [Documentation] Test ID: 8.3.1.5.1 - ... Test title: POST NFV-MANO Service Interface - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Post request for NFV-MANO Service Interface + Send Post request for NFV-MANO Service Interfaces Check HTTP Response Status Code Is 405 -GET NFV-MANO Service Interface +GET NFV-MANO Service Interfaces [Documentation] Test ID: 8.3.1.5.2 - ... Test title: GET NFV-MANO Service Interface + ... 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. ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface + Get NFV-MANO Service Interfaces Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Service Interface - invalid attribute-based filter +GET NFV-MANO Service Interfaces - invalid attribute-based filter [Documentation] Test ID: 8.3.1.5.3 - ... Test title: GET NFV-MANO Service Interface - invalid attribute-based filter - ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interface fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface with invalid filter + Get NFV-MANO Service Interfaces with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET NFV-MANO Service Interface - invalid attribute selector +GET NFV-MANO Service Interfaces - invalid attribute selector [Documentation] Test ID: 8.3.1.5.4 - ... Test title: GET NFV-MANO Service Interface - invalid attribute selector - ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interface fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface with invalid selector + Get NFV-MANO Service Interfaces with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET NFV-MANO Service Interface - Bad Request Response too Big +GET NFV-MANO Service Interfaces - Bad Request Response too Big [Documentation] Test ID: 8.3.1.5.5 - ... Test title: GET NFV-MANO Service Interface - Bad Request Response too Big - ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interface fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface + Get NFV-MANO Service Interfaces Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails -GET NFV-MANO Service Interface with attribute-based filter +GET NFV-MANO Service Interfaces with attribute-based filter [Documentation] Test ID: 8.3.1.5.6 - ... Test title: GET NFV-MANO Service Interface 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 ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface with filter + Get NFV-MANO Service Interfaces with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Service Interface with "all_fields" attribute selector +GET NFV-MANO Service Interfaces with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.5.7 ... Test title: GET NFV-MANO Service Interface with "all_fields" attribute selector - ... Test objective: The objective is to retrieve 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 ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface with all_fields attribute selector + Get NFV-MANO Service Interfaces with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Service Interface with "exclude_default" attribute selector +GET NFV-MANO Service Interfaces with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.5.8 - ... Test title: GET NFV-MANO Service Interface with "exclude_default" attribute selector - ... Test objective: The objective is to retrieve NFV-MANO Service Interface 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 ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface with all_fields attribute selector + Get NFV-MANO Service Interfaces with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Service Interface with "fields" attribute selector +GET NFV-MANO Service Interfaces with "fields" attribute selector [Documentation] Test ID: 8.3.1.5.9 - ... Test title: GET NFV-MANO Service Interface with "fields" attribute selector - ... Test objective: The objective is to retrieve NFV-MANO Service Interface 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 ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface with fields attribute selector + Get NFV-MANO Service Interfaces with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Service Interface with "exclude_fields" attribute selector +GET NFV-MANO Service Interfaces with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.5.10 - ... Test title: GET NFV-MANO Service Interface with "exclude_fields" attribute selector - ... Test objective: The objective is to retrieve NFV-MANO Service Interface 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 ... Pre-conditions: none ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface with exclude_fields attribute selector + Get NFV-MANO Service Interfaces with exclude_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Service Interface with Paged Response +GET NFV-MANO Service Interfaces with Paged Response [Documentation] Test ID: 8.3.1.5.11 - ... Test title: GET NFV-MANO Service Interface 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get NFV-MANO Service Interface + Get NFV-MANO Service Interfaces Check HTTP Response Status Code Is 200 Check LINK in Header -PUT NFV-MANO Service Interface - Method not implemented +PUT NFV-MANO Service Interfaces - Method not implemented [Documentation] Test ID: 8.3.1.5.12 - ... Test title: PUT NFV-MANO Service Interface - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Put request for NFV-MANO Service Interface + Send Put request for NFV-MANO Service Interfaces Check HTTP Response Status Code Is 405 -PATCH NFV-MANO Service Interface - Method not implemented +PATCH NFV-MANO Service Interfaces - Method not implemented [Documentation] Test ID: 8.3.1.5.13 - ... Test title: PATCH NFV-MANO Service Interface - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Patch request for NFV-MANO Service Interface + Send Patch request for NFV-MANO Service Interfaces Check HTTP Response Status Code Is 405 -DELETE NFV-MANO Service Interface - Method not implemented +DELETE NFV-MANO Service Interfaces - Method not implemented [Documentation] Test ID: 8.3.1.5.14 - ... Test title: DELETE NFV-MANO Service Interface - 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Delete request for NFV-MANO Service Interface + Send Delete request for NFV-MANO Service Interfaces Check HTTP Response Status Code Is 405 \ No newline at end of file -- GitLab From 3a8ca1326dadbeacd5e241b778bf8320f2cafda7 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 9 Sep 2020 18:36:39 +0200 Subject: [PATCH 096/116] renamed NFVMANOCim robot file --- ...VMANOServiceInterface.robot => NFVMANOServiceInterfaces.robot} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename SOL009/NFVManoConfigurationAndInformationManagement-API/{NFVMANOServiceInterface.robot => NFVMANOServiceInterfaces.robot} (100%) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot similarity index 100% rename from SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterface.robot rename to SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot -- GitLab From a4f4cc7fa05449e03faecfa2591fbd2cf382b16d Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 10 Sep 2020 17:23:22 +0200 Subject: [PATCH 097/116] updated check link in header --- .../NFVMANOCimKeywords.robot | 2 +- .../Subscriptions.robot | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 9f556dda6..1e9e1bee9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -186,7 +186,7 @@ Get Change State Operation Occurrences with exclude_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} -Check LINK in Header +Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot index 142a5c08d..2bc55ce8b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot @@ -48,8 +48,8 @@ GET Subscriptions with Paged Response ... Post-Conditions: Get all Subscriptions Check HTTP Response Status Code Is 200 - Check LINK in Header - + Check HTTP Response Header Contains Link + GET Subscriptions - invalid attribute-based filter [Documentation] Test ID: 8.3.1.10.4 ... Test title: GET Subscriptions - invalid attribute-based filter -- GitLab From 88238de5b0dd69abb6c2d50f86d6c6e8a943b598 Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 11 Sep 2020 16:55:32 +0500 Subject: [PATCH 098/116] added authentication tests --- .../NFVMANOCimKeywords.robot | 31 ++++++++++++- .../PeerEntities.robot | 43 +++++++++++++++++-- .../environment/variables.txt | 3 +- 3 files changed, 72 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 1e9e1bee9..84229bf75 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -777,4 +777,33 @@ Check Postcondition Peer Entity Resource is created Check HTTP Response Header Contains Location ${loc}= Get Value From Json ${response['headers']} $..Location - Should Not Be Empty ${loc} \ No newline at end of file + Should Not Be Empty ${loc} + +GET Peer Entity with malformed authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${BAD_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Peer Entity without authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries omitting token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET Peer Entity with expired or revoked authorization token + Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication + Log The GET method queries using invalid token + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Authorization": "${NEG_AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities + ${output}= Output response + Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index b1adf732e..3a4768c23 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -153,9 +153,46 @@ GET Peer Entity with Paged Response Get Peer Entity Check HTTP Response Status Code Is 200 Check LINK in Header + +Get Peer Entity with malformed authorization token + [Documentation] Test ID: 8.3.1.8.12 + ... 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 [5] v3.3.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 + GET Peer Entity with malformed authorization token + Check HTTP Response Status Code Is 400 + +Get Peer Entity without authorization token + [Documentation] Test ID: 8.3.1.8.13 + ... 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 [5] v3.3.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 + GET Peer Entity without authorization token + Check HTTP Response Status Code Is 401 + +GET information about multiple alarms with expired or revoked authorization token + [Documentation] Test ID: 8.3.1.8.14 + ... 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: One or more Network Service Descriptors are onboarded in the NFVO + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.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 + GET Peer Entity with expired or revoked authorization token + Check HTTP Response Status Code Is 401 + PUT Peer Entities - Method not implemented - [Documentation] Test ID: 8.3.1.8.12 + [Documentation] Test ID: 8.3.1.8.15 ... Test title: PUT Peer Entities - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none @@ -167,7 +204,7 @@ PUT Peer Entities - Method not implemented Check HTTP Response Status Code Is 405 PATCH Peer Entities - Method not implemented - [Documentation] Test ID: 8.3.1.8.13 + [Documentation] Test ID: 8.3.1.8.16 ... Test title: PATCH Peer Entities - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. ... Pre-conditions:none @@ -179,7 +216,7 @@ PATCH Peer Entities - Method not implemented Check HTTP Response Status Code Is 405 DELETE Peer Entities - Method not implemented - [Documentation] Test ID: 8.3.1.8.14 + [Documentation] Test ID: 8.3.1.8.17 ... Test title: DELETE Peer Entities - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 7d785da9a..8d85c39e0 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -3,9 +3,10 @@ ${NFVMANOHOST} localhost ${NFVMANO_PORT} 8080 ${NFVMANO_SCHEMA} https - ${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 ${NEG_AUTHORIZATION} Bearer negativetoken +${WRONG_AUTHORIZATION} Bearer XXXXXWRONGXXXXX +${BAD_AUTHORIZATION} Bear sometoken ${CONTENT_TYPE_JSON} application/json ${ACCEPT_JSON} application/json -- GitLab From fea6a5766899b420983a4c60858f74422a1489be Mon Sep 17 00:00:00 2001 From: uihassan Date: Fri, 11 Sep 2020 19:34:10 +0500 Subject: [PATCH 099/116] templating, minor bugs fix and new testcases added --- .../ChangeStateOperationOccurrences.robot | 42 ++++++++----- .../IndividualNFVMANOServiceInterface.robot | 26 +++++--- .../IndividualPeerEntity.robot | 22 +++++-- ...vidualStateChangeOperationOccurrence.robot | 18 +++++- .../IndividualSubscription.robot | 2 +- .../NFVMANOCimKeywords.robot | 61 ++++++++++++++----- .../NFVMANOEntity.robot | 6 +- .../NFVMANOServiceInterfaces.robot | 38 ++++++++---- .../PeerEntities.robot | 43 ++++++++----- .../Subscriptions.robot | 7 +-- .../environment/variables.txt | 6 +- .../jsons/ChangeStateRequest.json | 10 +-- .../jsons/CimSubscriptionRequest.json | 6 +- .../jsons/CreatePeerEntityRequest.json | 10 +-- 14 files changed, 200 insertions(+), 97 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot index 052f60013..d105b16bc 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot @@ -23,7 +23,7 @@ POST Change State Operation Occurrences - Method not implemented GET Change State Operation Occurrences [Documentation] Test ID: 8.3.1.3.2 ... Test title: GET Change State Operation Occurrences - ... Test objective: The objective is to query status information about multiple 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -75,7 +75,7 @@ GET Change State Operation Occurrences - Bad Request Response too Big GET Change State Operation Occurrences with attribute-based filter [Documentation] Test ID: 8.3.1.3.6 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -88,7 +88,7 @@ GET Change State Operation Occurrences with attribute-based filter GET Change State Operation Occurrences with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.3.7 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -101,34 +101,33 @@ GET Change State Operation Occurrences with "all_fields" attribute selector GET Change State Operation Occurrences with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.3.8 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence with all_fields attribute selector + Get Change State Operation Occurrences with exclude_default attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc - GET Change State Operation Occurrences with "fields" attribute selector [Documentation] Test ID: 8.3.1.3.9 - ... Test title: GET Change State Operation Occurrence with "fields" attribute selector - ... Test objective: The objective is to retrieve Change State Operation Occurrence 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence with fields attribute selector + Get Change State Operation Occurrences with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc GET Change State Operation Occurrences with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.3.10 - ... Test title: GET Change State Operation Occurrence with "exclude_fields" attribute selector - ... Test objective: The objective is to retrieve Change State Operation Occurrence 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -149,10 +148,23 @@ GET Change State Operation Occurrences with Paged Response ... Post-Conditions: none Get Change State Operation Occurrence Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link + +GET Change State Operation Occurrences with "fields" and "exclude_default" attribute selector + [Documentation] Test ID: 8.3.1.3.12 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Change State Operation Occurrences with fields and exclude_default attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc PUT Change State Operation Occurrences - Method not implemented - [Documentation] Test ID: 8.3.1.3.12 + [Documentation] Test ID: 8.3.1.3.13 ... 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 @@ -164,7 +176,7 @@ PUT Change State Operation Occurrences - Method not implemented Check HTTP Response Status Code Is 405 PATCH Change State Operation Occurrences - Method not implemented - [Documentation] Test ID: 8.3.1.3.13 + [Documentation] Test ID: 8.3.1.3.14 ... 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 @@ -176,7 +188,7 @@ PATCH Change State Operation Occurrences - Method not implemented Check HTTP Response Status Code Is 405 DELETE Change State Operation Occurrences - Method not implemented - [Documentation] Test ID: 8.3.1.3.14 + [Documentation] Test ID: 8.3.1.3.15 ... 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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot index 2d2417ffd..265293770 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot @@ -23,7 +23,7 @@ POST Individual NFV-MANO Service Interface - Method not implemented GET Individual NFV-MANO Service Interface [Documentation] Test ID: 8.3.1.6.2 ... 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. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -33,8 +33,20 @@ GET Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterface -PUT Individual NFV-MANO Service Interface - Method not implemented +GET Individual NFV-MANO Service Interface - Not Found [Documentation] Test ID: 8.3.1.6.3 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual NFV-MANO Service Interface + Check HTTP Response Status Code Is 404 + +PUT Individual NFV-MANO Service Interface - Method not implemented + [Documentation] Test ID: 8.3.1.6.4 ... 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 @@ -46,9 +58,9 @@ PUT Individual NFV-MANO Service Interface - Method not implemented Check HTTP Response Status Code Is 405 PATCH Individual NFV-MANO Service Interface - [Documentation] Test ID: 8.3.1.6.4 + [Documentation] Test ID: 8.3.1.6.5 ... Test title: PATCH Individual NFV-MANO Service Interface - ... Test objective: This method modifies the Individual NFV-MANO Service Interface resource + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -59,7 +71,7 @@ PATCH Individual NFV-MANO Service Interface Check HTTP Response Body Json Schema Is ManoServiceInterfaceModifications PATCH Individual NFV-MANO Service Interface - Conflict - [Documentation] Test ID: 8.3.1.6.5 + [Documentation] Test ID: 8.3.1.6.6 ... 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. @@ -72,7 +84,7 @@ PATCH Individual NFV-MANO Service Interface - Conflict Check HTTP Response Body Json Schema Is ProblemDetails PATCH Individual NFV-MANO Service Interface - PreCondition Failed - [Documentation] Test ID: 8.3.1.6.6 + [Documentation] Test ID: 8.3.1.6.7 ... 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. @@ -85,7 +97,7 @@ PATCH Individual NFV-MANO Service Interface - PreCondition Failed Check HTTP Response Body Json Schema Is ProblemDetails DELETE Individual NFV-MANO Service Interface - Method not implemented - [Documentation] Test ID: 8.3.1.6.7 + [Documentation] Test ID: 8.3.1.6.8 ... 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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot index e8b7bc85d..f59e3e0b1 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot @@ -33,8 +33,20 @@ GET Individual Peer Entity Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntity -PUT Individual Peer Entity - Method not implemented +GET Individual Peer Entity - Not Found [Documentation] Test ID: 8.3.1.9.3 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Peer Entity + Check HTTP Response Status Code Is 404 + +PUT Individual Peer Entity - Method not implemented + [Documentation] Test ID: 8.3.1.9.4 ... 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 @@ -46,7 +58,7 @@ PUT Individual Peer Entity - Method not implemented Check HTTP Response Status Code Is 405 PATCH Individual Peer Entity - [Documentation] Test ID: 8.3.1.9.4 + [Documentation] Test ID: 8.3.1.9.5 ... 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 @@ -59,7 +71,7 @@ PATCH Individual Peer Entity Check HTTP Response Body Json Schema Is ManoServiceInterfaceModifications PATCH Individual Peer Entity - Conflict - [Documentation] Test ID: 8.3.1.9.5 + [Documentation] Test ID: 8.3.1.9.6 ... 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 @@ -72,7 +84,7 @@ PATCH Individual Peer Entity - Conflict Check HTTP Response Body Json Schema Is ProblemDetails PATCH Individual Peer Entity - PreCondition Failed - [Documentation] Test ID: 8.3.1.9.6 + [Documentation] Test ID: 8.3.1.9.7 ... 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 @@ -85,7 +97,7 @@ PATCH Individual Peer Entity - PreCondition Failed Check HTTP Response Body Json Schema Is ProblemDetails DELETE Individual Peer Entity - Method not implemented - [Documentation] Test ID: 8.3.1.9.7 + [Documentation] Test ID: 8.3.1.9.8 ... 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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot index ccd61f63b..be04cc838 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot @@ -33,8 +33,20 @@ GET Individual Change State Operation Occurrence Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ChangeStateOpOcc -PUT Individual Change State Operation Occurrence - Method not implemented +GET Individual Change State Operation Occurrence - Not Found [Documentation] Test ID: 8.3.1.4.3 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Change State Operation Occurrence + Check HTTP Response Status Code Is 404 + +PUT Individual Change State Operation Occurrence - Method not implemented + [Documentation] Test ID: 8.3.1.4.4 ... 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 @@ -46,7 +58,7 @@ PUT Individual Change State Operation Occurrence - Method not implemented Check HTTP Response Status Code Is 405 PATCH Individual Change State Operation Occurrence - Method not implemented - [Documentation] Test ID: 8.3.1.4.4 + [Documentation] Test ID: 8.3.1.4.5 ... 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 @@ -58,7 +70,7 @@ PATCH Individual Change State Operation Occurrence - Method not implemented Check HTTP Response Status Code Is 405 DELETE Individual Change State Operation Occurrence - Method not implemented - [Documentation] Test ID: 8.3.1.4.5 + [Documentation] Test ID: 8.3.1.4.6 ... 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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot index 8801e21f1..c40816dcc 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot @@ -41,7 +41,7 @@ DELETE Individual Subscription ... Reference: clause 5.5.5.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The is not available anymore in the NFV-MANO + ... Post-Conditions: The resource is not available anymore in the NFV-MANO Send Delete request for individual Subscription Check HTTP Response Status Code Is 204 Check Postcondition Subscription is Deleted diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 84229bf75..57ce6dcff 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -1,4 +1,5 @@ *** Settings *** +Library String Resource environment/variables.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library MockServerLibrary @@ -27,10 +28,6 @@ Check HTTP Response Body Json Schema Is ${schema} = Catenate SEPARATOR= ${input} .schema.json Validate Json ${schema} ${response['body']} Log Json Schema Validation OK - -Check Operation Occurrence Id - ${OpOccId}= Get Value From Json ${response['headers']} $..Location - Should Not Be Empty ${OpOccId} Send Post request for NFV-MANO Entity Log Trying to perform a POST (method should not be implemented) @@ -177,6 +174,14 @@ Get Change State Operation Occurrences with fields attribute selector GET ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} + +Get Change State Operation Occurrences with exclude_default attribute selector + Log Queries information about multiple change state operation occurrences, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?exclude_default + ${output}= Output response + Set Suite Variable ${response} ${output} Get Change State Operation Occurrences with exclude_fields attribute selector Log Queries information about multiple change state operation occurrences, using fields @@ -186,6 +191,14 @@ Get Change State Operation Occurrences with exclude_fields attribute selector ${output}= Output response Set Suite Variable ${response} ${output} +Get Change State Operation Occurrences with fields and exclude_default attribute selector + Log Queries information about multiple change state operation occurrences, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops?exclude_default&fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} + Check HTTP Response Header Contains Link ${linkURL}= Get Value From Json ${response['headers']} $..Link Should Not Be Empty ${linkURL} @@ -304,6 +317,14 @@ Get NFV-MANO Service Interfaces with all_fields attribute selector GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?exclude_default ${output}= Output response Set Suite Variable ${response} ${output} + +Get NFV-MANO Service Interfaces with exclude_default and fields attribute selector + Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using all_fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces?exclude_default&fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} Get NFV-MANO Service Interfaces with fields attribute selector Log Queries information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, using fields @@ -390,8 +411,9 @@ Send Delete request for Individual NFV-MANO Service Interface Send Post request for Change interface state task Log Trying to perform a POST for Change interface state task Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body}= Get File jsons/ChangeStateRequest.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${template}= Get File jsons/ChangeStateRequest.json + ${body}= Format String ${template} operationalStateAction=${operationalStateAction} POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -434,8 +456,9 @@ Send Delete request for Change interface state task Send Post request for Peer Entity Log Trying to perform a POST for Peer Entity Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body}= Get File jsons/CreatePeerEntityRequest.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${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} @@ -489,6 +512,14 @@ Get Peer Entities with fields attribute selector GET ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?fields=${fields} ${output}= Output response Set Suite Variable ${response} ${output} + +Get Peer Entity with exclude_default and fields attribute selector + Log Queries information about multiple peer entities, using fields + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities?exclude_default&fields=${fields} + ${output}= Output response + Set Suite Variable ${response} ${output} Get Peer Entities with exclude_fields attribute selector Log Queries information about multiple peer entities, using fields @@ -564,9 +595,6 @@ Send Delete request for Individual Peer Entity ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} - - - Create Sessions Pass Execution If ${NFVMANO_CHECKS_NOTIF_ENDPOINT} == 0 MockServer not necessary to run Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance @@ -609,8 +637,9 @@ Get Subscriptions with invalid attribute-based filters Send Post Request for Subscription Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Set headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} - ${body_request}= Get File jsons/CimSubscriptionRequest.json + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} + ${template}= Get File jsons/CimSubscriptionRequest.json + ${body_request}= Format String ${template} callback_uri=${callback_uri} POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} ${output}= Output response Set Suite Variable ${response} ${output} @@ -619,7 +648,8 @@ Send Post Request for Subscription Check HTTP Response Body CimSubscription Attributes Values Match the Issued Subscription Log Check Response matches subscription - ${body}= Get File jsons/subscriptions.json + ${template}= Get File jsons/CimSubscriptionRequest.json + ${body}= Format String ${template} callback_uri=${callback_uri} ${subscription}= evaluate json.loads('''${body}''') json Should Be Equal As Strings ${response['body']['callbackUri']} ${subscription['callbackUri']} @@ -635,7 +665,8 @@ Send Post Request for Duplicated Subscription Set headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body_request}= Get File jsons/CimSubscriptionRequest.json + ${template}= Get File jsons/CimSubscriptionRequest.json + ${body_request}= Format String ${template} callback_uri=${callback_uri} POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index 113a69e6c..a9bfd9b55 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -36,7 +36,7 @@ GET NFV-MANO entity GET NFV-MANO entity - Not Found [Documentation] Test ID: 8.3.1.1.3 ... 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 and perform the JSON schema validation of the failed operation HTTP response. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -44,8 +44,6 @@ GET NFV-MANO entity - Not Found ... Post-Conditions: none GET NFV-MANO entity resource Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is ProblemDetails - PUT NFV-MANO entity - Method not implemented [Documentation] Test ID: 8.3.1.1.4 @@ -62,7 +60,7 @@ PUT NFV-MANO entity - Method not implemented PATCH NFV-MANO entity [Documentation] Test ID: 8.3.1.1.5 ... Test title: PATCH NFV-MANO entity - ... Test objective: This method modifies the NFV-MANO entity resource + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot index ba1c97bf2..e3f619468 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot @@ -23,7 +23,7 @@ POST NFV-MANO Service Interfaces - Method not implemented GET NFV-MANO Service Interfaces [Documentation] Test ID: 8.3.1.5.2 ... 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. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -75,7 +75,7 @@ GET NFV-MANO Service Interfaces - Bad Request Response too Big GET NFV-MANO Service Interfaces with attribute-based filter [Documentation] Test ID: 8.3.1.5.6 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -88,7 +88,7 @@ GET NFV-MANO Service Interfaces with attribute-based filter GET NFV-MANO Service Interfaces with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.5.7 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -101,7 +101,7 @@ GET NFV-MANO Service Interfaces with "all_fields" attribute selector GET NFV-MANO Service Interfaces with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.5.8 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -110,12 +110,11 @@ GET NFV-MANO Service Interfaces with "exclude_default" attribute selector Get NFV-MANO Service Interfaces with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces - - + GET NFV-MANO Service Interfaces with "fields" attribute selector [Documentation] Test ID: 8.3.1.5.9 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -128,7 +127,7 @@ GET NFV-MANO Service Interfaces with "fields" attribute selector GET NFV-MANO Service Interfaces with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.5.10 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -138,8 +137,21 @@ GET NFV-MANO Service Interfaces with "exclude_fields" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ManoServiceInterfaces -GET NFV-MANO Service Interfaces with Paged Response +GET NFV-MANO Service Interfaces with "exclude_default" and "fields" attribute selector [Documentation] Test ID: 8.3.1.5.11 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get NFV-MANO Service Interfaces with exclude_default and fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + +GET NFV-MANO Service Interfaces with Paged Response + [Documentation] Test ID: 8.3.1.5.12 ... 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 @@ -149,10 +161,10 @@ GET NFV-MANO Service Interfaces with Paged Response ... Post-Conditions: none Get NFV-MANO Service Interfaces Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link PUT NFV-MANO Service Interfaces - Method not implemented - [Documentation] Test ID: 8.3.1.5.12 + [Documentation] Test ID: 8.3.1.5.13 ... 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 @@ -164,7 +176,7 @@ PUT NFV-MANO Service Interfaces - Method not implemented Check HTTP Response Status Code Is 405 PATCH NFV-MANO Service Interfaces - Method not implemented - [Documentation] Test ID: 8.3.1.5.13 + [Documentation] Test ID: 8.3.1.5.14 ... 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 @@ -176,7 +188,7 @@ PATCH NFV-MANO Service Interfaces - Method not implemented Check HTTP Response Status Code Is 405 DELETE NFV-MANO Service Interfaces - Method not implemented - [Documentation] Test ID: 8.3.1.5.14 + [Documentation] Test ID: 8.3.1.5.15 ... 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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index 3a4768c23..e5c10b793 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -26,7 +26,7 @@ POST Peer Entity GET Peer Entities [Documentation] Test ID: 8.3.1.8.2 ... 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. + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -78,7 +78,7 @@ GET Peer Entities - Bad Request Response too Big GET Peer Entities with attribute-based filter [Documentation] Test ID: 8.3.1.8.6 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -91,7 +91,7 @@ GET Peer Entities with attribute-based filter GET Peer Entities with "all_fields" attribute selector [Documentation] Test ID: 8.3.1.8.7 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -104,7 +104,7 @@ GET Peer Entities with "all_fields" attribute selector GET Peer Entities with "exclude_default" attribute selector [Documentation] Test ID: 8.3.1.8.8 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -114,11 +114,10 @@ GET Peer Entities with "exclude_default" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities - GET Peer Entities with "fields" attribute selector [Documentation] Test ID: 8.3.1.8.9 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -131,7 +130,7 @@ GET Peer Entities with "fields" attribute selector GET Peer Entities with "exclude_fields" attribute selector [Documentation] Test ID: 8.3.1.8.10 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -141,8 +140,21 @@ GET Peer Entities with "exclude_fields" attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities -GET Peer Entity with Paged Response +GET Peer Entities with "exclude_default" and "fields" attribute selector [Documentation] Test ID: 8.3.1.8.11 + ... 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 [5] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Peer Entity with exclude_default and fields attribute selector + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntities + +GET Peer Entity with Paged Response + [Documentation] Test ID: 8.3.1.8.12 ... 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. @@ -152,10 +164,10 @@ GET Peer Entity with Paged Response ... Post-Conditions: none Get Peer Entity Check HTTP Response Status Code Is 200 - Check LINK in Header + Check HTTP Response Header Contains Link Get Peer Entity with malformed authorization token - [Documentation] Test ID: 8.3.1.8.12 + [Documentation] Test ID: 8.3.1.8.13 ... 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 @@ -167,7 +179,7 @@ Get Peer Entity with malformed authorization token Check HTTP Response Status Code Is 400 Get Peer Entity without authorization token - [Documentation] Test ID: 8.3.1.8.13 + [Documentation] Test ID: 8.3.1.8.14 ... 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 @@ -179,7 +191,7 @@ Get Peer Entity without authorization token Check HTTP Response Status Code Is 401 GET information about multiple alarms with expired or revoked authorization token - [Documentation] Test ID: 8.3.1.8.14 + [Documentation] Test ID: 8.3.1.8.15 ... 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: One or more Network Service Descriptors are onboarded in the NFVO @@ -190,9 +202,8 @@ GET information about multiple alarms with expired or revoked authorization toke GET Peer Entity with expired or revoked authorization token Check HTTP Response Status Code Is 401 - PUT Peer Entities - Method not implemented - [Documentation] Test ID: 8.3.1.8.15 + [Documentation] Test ID: 8.3.1.8.16 ... Test title: PUT Peer Entities - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none @@ -204,7 +215,7 @@ PUT Peer Entities - Method not implemented Check HTTP Response Status Code Is 405 PATCH Peer Entities - Method not implemented - [Documentation] Test ID: 8.3.1.8.16 + [Documentation] Test ID: 8.3.1.8.17 ... Test title: PATCH Peer Entities - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. ... Pre-conditions:none @@ -216,7 +227,7 @@ PATCH Peer Entities - Method not implemented Check HTTP Response Status Code Is 405 DELETE Peer Entities - Method not implemented - [Documentation] Test ID: 8.3.1.8.17 + [Documentation] Test ID: 8.3.1.8.18 ... Test title: DELETE Peer Entities - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot index 2bc55ce8b..6395146fb 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot @@ -14,7 +14,7 @@ Suite Teardown Terminate All Processes kill=true GET all Subscriptions [Documentation] Test ID: 8.3.1.10.1 ... 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 + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -27,7 +27,7 @@ GET all Subscriptions GET Subscriptions with attribute-based filter [Documentation] Test ID: 8.3.1.10.2 ... 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, perform a JSON schema validation of the collected indicators data structure, and verify that the retrieved information matches the issued attribute-based filters + ... 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 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO @@ -89,12 +89,11 @@ GET Subscriptions - invalid resource endpoint Get all Subscriptions Check HTTP Response Status Code Is 404 - Create new Subscription [Documentation] Test ID 8.3.1.10.7 ... 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: + ... Pre-conditions: none ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 8d85c39e0..2403b026b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -55,4 +55,8 @@ ${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa ${erroneousSubscriptionId} erroneousSubscriptionId ${newSubscriptionId} newSubsciptionId -${origResponse} {} \ No newline at end of file +${origResponse} {} + +${name} EntityName +${type} NFVO +${operationalStateAction} START \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json index 82608e379..1245a6b65 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json @@ -1,7 +1,7 @@ -{ +{{ "operationalStateChange": - { - "operationalStateAction":"START" - } + {{ + "operationalStateAction":"{operationalStateAction}" + }} -} \ No newline at end of file +}} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json index 3475fa745..a86c405f9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CimSubscriptionRequest.json @@ -1,3 +1,3 @@ -{ - "callbackUri": "http://172.22.1.7:9091" -} \ No newline at end of file +{{ + "callbackUri": "{callback_uri}{callback_endpoint}" +}} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json index baa48b7e2..256bd547b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/CreatePeerEntityRequest.json @@ -1,5 +1,5 @@ -{ - "peerEntityId": "", - "name": "NFV-MANO Entity", - "type": "NFVO" -} \ No newline at end of file +{{ + "peerEntityId": "{peerEntityId}", + "name": "{name}", + "type": "{type}" +}} \ No newline at end of file -- GitLab From 3c97e28d45875b0bbcf593bd978e9d7035c00b48 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 13:21:11 +0500 Subject: [PATCH 100/116] minor bugs fixed and redundant post-conditions removed --- .../IndividualSubscription.robot | 9 +++----- .../NFVMANOCimKeywords.robot | 22 ------------------- .../PeerEntities.robot | 2 +- .../Subscriptions.robot | 3 +-- .../jsons/ManoConfigModificationRequest.json | 2 +- 5 files changed, 6 insertions(+), 32 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot index c40816dcc..15832f9a6 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot @@ -66,10 +66,9 @@ POST Individual Subscription - Method not implemented ... Reference: clause 5.5.5.3.1 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The VNF Performance Subscription is not created on the NFV-MANO + ... Post-Conditions: none Send Post request for individual Subscription Check HTTP Response Status Code Is 405 - Check Postcondition Subscription is not Created PUT Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.1.11.6 @@ -79,10 +78,9 @@ PUT Individual Subscription - Method not implemented ... Reference: clause 5.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The subscription is not modified by the operation + ... Post-Conditions: none Send Put request for individual Subscription Check HTTP Response Status Code Is 405 - Check Postcondition Subscription is Unmodified (Implicit) PATCH Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.1.11.7 @@ -92,7 +90,6 @@ PATCH Individual Subscription - Method not implemented ... Reference: clause 5.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The subscription is not modified by the operation + ... Post-Conditions: none Send Patch request for individual Subscription Check HTTP Response Status Code Is 405 - Check Postcondition Subscription is Unmodified (Implicit) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 57ce6dcff..7fb6f6466 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -714,11 +714,6 @@ Send Delete Request for Subscriptions ${output}= Output response Set Suite Variable ${response} ${output} -Check Postcondition Subscriptions Exists - Log Checking that subscriptions exists - Get all Subscriptions - Check HTTP Response Status Code Is 200 - Get Individual Subscription Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -780,23 +775,6 @@ Send Patch request for individual Subscription PATCH ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} ${output}= Output response Set Suite Variable @{response} ${output} - -Check Postcondition Subscription is Unmodified (Implicit) - Log Check postconidtion subscription not modified - GET individual Subscription - Log Check Response matches original Subscription - ${subscription}= evaluate json.loads('''${response['body']}''') json - Should Be Equal As Strings ${origResponse['body']['id']} ${subscription.id} - Should Be Equal As Strings ${origResponse['body']['callbackUri']} ${subscription.callbackUri} - -Check Postcondition Subscription is not Created - Log Trying to get a new subscription - Set Headers {"Accept": "${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${newSubscriptionId} - ${output}= Output response - Set Suite Variable @{response} ${output} - Check HTTP Response Status Code Is 404 Check Postcondition Peer Entity Resource is created Log Check Postcondition Peer Entity resource diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index e5c10b793..f1917fe1e 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -176,7 +176,7 @@ Get Peer Entity with malformed authorization token ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none GET Peer Entity with malformed authorization token - Check HTTP Response Status Code Is 400 + Check HTTP Response Status Code Is 401 Get Peer Entity without authorization token [Documentation] Test ID: 8.3.1.8.14 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot index 6395146fb..c3094aa2e 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot @@ -169,7 +169,6 @@ DELETE Subscriptions - Method not implemented ... Reference: clause 5.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: The subscriptions are not deleted by the failed operation + ... Post-Conditions: none Send Delete Request for Subscriptions Check HTTP Response Status Code Is 405 - Check Postcondition Subscriptions Exists diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json index eca04e508..906b3143f 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ManoConfigModificationRequest.json @@ -1,3 +1,3 @@ { - "name": "NFV-MANO Entity" + "name": "NFV-MANO_Entity" } \ No newline at end of file -- GitLab From 88f336262c1aec45860756e60447faa05f17f0e3 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 14 Sep 2020 10:25:21 +0200 Subject: [PATCH 101/116] removed bad pre-condition --- .../PeerEntities.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index f1917fe1e..54e5f11a4 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -194,7 +194,7 @@ GET information about multiple alarms with expired or revoked authorization toke [Documentation] Test ID: 8.3.1.8.15 ... 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: One or more Network Service Descriptors are onboarded in the NFVO + ... Pre-conditions: none ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [5] v3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. -- GitLab From 1f96373a911da8d47eb7a3c910d2f4033ffcf9c0 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 14 Sep 2020 15:07:50 +0500 Subject: [PATCH 102/116] pre-conditions updated --- .../IndividualSubscription.robot | 4 ++-- .../Subscriptions.robot | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot index 15832f9a6..845145baa 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot @@ -74,7 +74,7 @@ PUT Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.1.11.6 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 5.5.5.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -86,7 +86,7 @@ PATCH Individual Subscription - Method not implemented [Documentation] Test ID: 8.3.1.11.7 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 5.5.5.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot index c3094aa2e..76465b7e9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot @@ -141,7 +141,7 @@ PUT Subscriptions - Method not implemented [Documentation] Test ID 8.3.1.10.10 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 5.5.4.3.3 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -153,7 +153,7 @@ PATCH Subscriptions - Method not implemented [Documentation] Test ID 8.3.1.10.11 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 5.5.4.3.4 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none @@ -165,7 +165,7 @@ DELETE Subscriptions - Method not implemented [Documentation] Test ID 8.3.1.10.12 ... 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: At least one subscription is available in the NFV-MANO. + ... Pre-conditions: none ... Reference: clause 5.5.4.3.5 - ETSI GS NFV-SOL 009 [5] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none -- GitLab From 34766cfb5d80f06be856c2d2118abefdc9064bf9 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 6 Oct 2020 18:07:01 +0500 Subject: [PATCH 103/116] template bug fix added --- .../NFVMANOCimKeywords.robot | 6 +++--- .../environment/variables.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 7fb6f6466..57afc035a 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -639,7 +639,7 @@ Send Post Request for Subscription Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"} ${template}= Get File jsons/CimSubscriptionRequest.json - ${body_request}= Format String ${template} callback_uri=${callback_uri} + ${body_request}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} ${output}= Output response Set Suite Variable ${response} ${output} @@ -649,7 +649,7 @@ Send Post Request for Subscription Check HTTP Response Body CimSubscription Attributes Values Match the Issued Subscription Log Check Response matches subscription ${template}= Get File jsons/CimSubscriptionRequest.json - ${body}= Format String ${template} callback_uri=${callback_uri} + ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} ${subscription}= evaluate json.loads('''${body}''') json Should Be Equal As Strings ${response['body']['callbackUri']} ${subscription['callbackUri']} @@ -666,7 +666,7 @@ Send Post Request for Duplicated Subscription Set headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/CimSubscriptionRequest.json - ${body_request}= Format String ${template} callback_uri=${callback_uri} + ${body_request}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint} POST ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body_request} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 2403b026b..3e933f290 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -36,7 +36,7 @@ ${peerEntityId} ${callback_port} 9091 ${callback_uri} http://172.22.1.7:${callback_port} -${callback_endpoint} /nfvmanocim/subscriptions +${callback_endpoint} /subscriptions ${filter_ok} callbackUri=${callbackUri} ${filter_ko} erroneousFilter=erroneous ${callback_endpoint_fwd} /endpoint/check -- GitLab From 41ac1b80b54b596217fcec21cfa7bff4d83fdae0 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 22 Oct 2020 18:14:31 +0200 Subject: [PATCH 104/116] updated references --- .../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 +- .../PeerEntities.robot | 38 +++++++++---------- .../Subscriptions.robot | 24 ++++++------ 11 files changed, 106 insertions(+), 106 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index 4de972ff3..00e63bda4 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 [5] V3.3.1 + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,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 [5] V3.3.1 + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,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 [5] V3.3.1 + ... Reference: clause 5.5.7.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,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 [5] V3.3.1 + ... Reference: clause 5.5.7.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,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 [5] V3.3.1 + ... Reference: clause 5.5.7.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -74,7 +74,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 [5] V3.3.1 + ... Reference: clause 5.5.7.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 d105b16bc..d0b06d71d 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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.8.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 265293770..3e811b026 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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Individual NFV-MANO Service Interface is modified by the operation @@ -75,7 +75,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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Individual NFV-MANO Service Interface is not modified by the operation @@ -88,7 +88,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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Individual NFV-MANO Service Interface is not modified by the operation @@ -101,7 +101,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 [5] V3.3.1 + ... Reference: clause 5.5.11.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 f59e3e0b1..eda38f18e 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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.14.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 be04cc838..b2f606aa8 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 [5] V3.3.1 + ... Reference: clause 5.5.9.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.9.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.9.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.9.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 845145baa..a1d37e215 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 [5] V3.3.1 + ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.5.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.5.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.5.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.5.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.5.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 a9bfd9b55..97268a15b 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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.3.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 e3f619468..9d0a7f2e4 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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.10.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 9a8e00d21..2e77ce90b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.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 [5] V3.3.1 + ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 54e5f11a4..55ce8d910 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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] v3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.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 [5] v3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.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 [5] v3.3.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [6] v3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -218,8 +218,8 @@ PATCH Peer Entities - Method not implemented [Documentation] Test ID: 8.3.1.8.17 ... 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 [5] V3.3.1 + ... Pre-conditions: none + ... Reference: clause 5.5.13.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.13.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.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 76465b7e9..40a5165ff 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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -94,7 +94,7 @@ 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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 @@ Create request for duplicated Subscription not creating duplicated subscriptions ... 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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 @@ Create request for duplicated Subscription creating duplicated subscriptions ... 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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.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 [5] V3.3.1 + ... Reference: clause 5.5.4.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none -- GitLab From 5e8639d8bec7ee0911c2234375c084d5d24c691b Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 22 Oct 2020 18:18:27 +0200 Subject: [PATCH 105/116] updated references bis --- .../ApiVersion.robot | 20 +++++++++---------- .../ChangeInterfaceStateTask.robot | 12 +++++------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot index fac4978ca..b9c86942f 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot @@ -11,7 +11,7 @@ POST API Version - Method not implemented ... Test title: POST API version - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ GET API Version ... Test title: GET API Version ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ PUT API Version - Method not implemented ... Test title: PUT API Version - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PATCH API Version - Method not implemented ... Test title: PATCH API Version - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ DELETE API Version - Method not implemented ... Test title: DELETE API Version - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -72,7 +72,7 @@ POST API Version with apiMajorVerion - Method not implemented ... Test title: POST API version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -84,7 +84,7 @@ GET API Version with apiMajorVerion ... Test title: GET API Version with apiMajorVerion ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -97,7 +97,7 @@ PUT API Version with apiMajorVerion - Method not implemented ... Test title: PUT API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -109,7 +109,7 @@ PATCH API Version with apiMajorVerion - Method not implemented ... Test title: PATCH API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -121,7 +121,7 @@ DELETE API Version with apiMajorVerion - Method not implemented ... Test title: DELETE API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 v2.7.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot index cbd81a3ce..c31bdd830 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 [5] V3.3.1 + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -26,7 +26,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 [5] V3.3.1 + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -39,7 +39,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 [5] V3.3.1 + ... Reference: clause 5.5.12.3.2 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,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 [5] V3.3.1 + ... Reference: clause 5.5.12.3.3 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,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 [5] V3.3.1 + ... Reference: clause 5.5.12.3.4 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -75,7 +75,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 [5] V3.3.1 + ... Reference: clause 5.5.12.3.5 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none -- GitLab From 116dc06d49e25dad2a3242a783fa963a0649403e Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 26 Oct 2020 12:45:44 +0500 Subject: [PATCH 106/116] added keywords to check state is changed as intended --- .../ChangeInterfaceStateTask.robot | 3 +- .../ChangeNFVMANOEntityStateTask.robot | 3 +- .../IndividualNFVMANOServiceInterface.robot | 1 + .../NFVMANOCimKeywords.robot | 28 ++++++++++++++++++- .../environment/variables.txt | 7 ++++- .../jsons/ChangeStateRequest.json | 2 +- 6 files changed, 39 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot index c31bdd830..a036a1118 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot @@ -16,10 +16,11 @@ POST Change interface state task ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: none + ... Post-Conditions: interface status changed Send Post request for Change interface state task Check HTTP Response Status Code Is 202 Check HTTP Response Header Contains Location + Wait for interface state change success notification and validate status POST Change interface state task - Conflict [Documentation] Test ID: 8.3.1.7.2 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index 00e63bda4..020c545e9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -15,10 +15,11 @@ POST NFV-MANO functional entity application state change ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none - ... Post-Conditions: none + ... Post-Conditions: entity status changed Send Post request for NFV-MANO functional entity application state change 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 - Conflict [Documentation] Test ID: 8.3.1.2.2 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot index 3e811b026..b662f5c30 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot @@ -44,6 +44,7 @@ GET Individual NFV-MANO Service Interface - Not Found ... Post-Conditions: none Get Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails PUT Individual NFV-MANO Service Interface - Method not implemented [Documentation] Test ID: 8.3.1.6.4 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 57afc035a..bf84e5ab8 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -78,10 +78,24 @@ Send Post request for NFV-MANO functional entity application state change Log Trying to perform a POST for NFV-MANO functional entity application state change Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + ${template}= Get File jsons/ChangeStateRequest.json + ${body}= Format String ${template} state=${state} operationalStateAction=${operationalStateAction} 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 + +Check entity state + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${response['headers']['Location']} + Log Validate Status code + Integer response status 200 + Should Be Equal As Strings response body manoApplicationState ${state} ${operationalStateAction} + Log Validated + Send Get request for NFV-MANO functional entity application state change Log Trying to perform a GET (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -413,11 +427,23 @@ Send Post request for Change interface state task Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/ChangeStateRequest.json - ${body}= Format String ${template} operationalStateAction=${operationalStateAction} + ${body}= Format String ${template} state=${state} operationalStateAction=${operationalStateAction} POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${body} ${output}= Output response Set Suite Variable ${response} ${output} +Wait for interface state change success notification and validate status + Wait Until Keyword Succeeds ${retry} ${polling} Check interface state + +Check interface state + Set Headers {"Accept":"${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${response['headers']['Location']} + Log Validate Status code + Integer response status 200 + Should Be Equal As Strings response body interfaceState ${state} ${operationalStateAction} + Log Validated + Send Get request for Change interface state task Log Trying to perform a GET (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 3e933f290..ca1dc0b75 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -59,4 +59,9 @@ ${origResponse} {} ${name} EntityName ${type} NFVO -${operationalStateAction} START \ No newline at end of file + +${state} operationalStateChange +${operationalStateAction} START + +${retry} 2 min +${polling} 10 sec \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json index 1245a6b65..d1cdc12b2 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json @@ -1,5 +1,5 @@ {{ - "operationalStateChange": + "{state}": {{ "operationalStateAction":"{operationalStateAction}" }} -- GitLab From 80282fd2dcc750b0ba67ae17151b67b9888a43b2 Mon Sep 17 00:00:00 2001 From: uihassan Date: Mon, 26 Oct 2020 17:20:35 +0500 Subject: [PATCH 107/116] bug fix added --- .../NFVMANOCimKeywords.robot | 10 ++++++---- .../environment/variables.txt | 4 ++-- .../jsons/ChangeStateRequest.json | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index bf84e5ab8..2240a6068 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -79,7 +79,7 @@ Send Post request for NFV-MANO functional entity application state change Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/ChangeStateRequest.json - ${body}= Format String ${template} state=${state} operationalStateAction=${operationalStateAction} + ${body}= Format String ${template} state=${state} stateAction=${stateAction} POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state ${output}= Output response Set Suite Variable ${response} ${output} @@ -93,7 +93,8 @@ Check entity state Get ${response['headers']['Location']} Log Validate Status code Integer response status 200 - Should Be Equal As Strings response body manoApplicationState ${state} ${operationalStateAction} + ${respState} = Catenate SEPARATOR= change ${state} StateRequest + Should Be Equal As Strings response body ${respState} ${stateAction} Log Validated Send Get request for NFV-MANO functional entity application state change @@ -427,7 +428,7 @@ Send Post request for Change interface state task Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${template}= Get File jsons/ChangeStateRequest.json - ${body}= Format String ${template} state=${state} operationalStateAction=${operationalStateAction} + ${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} @@ -441,7 +442,8 @@ Check interface state Get ${response['headers']['Location']} Log Validate Status code Integer response status 200 - Should Be Equal As Strings response body interfaceState ${state} ${operationalStateAction} + ${respState} = Catenate SEPARATOR= change ${state} StateRequest + Should Be Equal As Strings response body ${respState} ${stateAction} Log Validated Send Get request for Change interface state task diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index ca1dc0b75..e94ee646d 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -60,8 +60,8 @@ ${origResponse} {} ${name} EntityName ${type} NFVO -${state} operationalStateChange -${operationalStateAction} START +${state} operational +${stateAction} START ${retry} 2 min ${polling} 10 sec \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json index d1cdc12b2..b93e142ef 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateRequest.json @@ -1,7 +1,7 @@ {{ - "{state}": + "{state}StateChange": {{ - "operationalStateAction":"{operationalStateAction}" + "{state}StateAction":"{stateAction}" }} }} \ No newline at end of file -- GitLab From 2d116dfdd37485c17410a6b356f58b449eee6dc0 Mon Sep 17 00:00:00 2001 From: Najam UI Hassan Date: Wed, 4 Nov 2020 11:24:21 +0100 Subject: [PATCH 108/116] Added keyword "Check PostCondition NFV-MANO service interface state matches the requested state" --- .../ChangeInterfaceStateTask.robot | 166 +++++++++--------- .../NFVMANOCimKeywords.robot | 2 +- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot index a036a1118..4cdc1a3ac 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot @@ -1,84 +1,84 @@ -** Settings *** -Library JSONSchemaLibrary schemas/ -Resource environment/variables.txt -Library JSONLibrary -Library OperatingSystem -Resource NFVMANOCimKeywords.robot -Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false -Library MockServerLibrary - -*** Test Cases *** -POST Change interface state task - [Documentation] Test ID: 8.3.1.7.1 - ... 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 [6] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: interface status changed - Send Post request for Change interface state task - Check HTTP Response Status Code Is 202 - Check HTTP Response Header Contains Location - Wait for interface state change success notification and validate status - -POST Change interface state task - Conflict - [Documentation] Test ID: 8.3.1.7.2 - ... 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 [6] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: none - Send Post request for Change interface state task - Check HTTP Response Status Code Is 409 - Check HTTP Response Body Json Schema Is ProblemDetails - -GET Change interface state task - Method not implemented - [Documentation] Test ID: 8.3.1.7.3 - ... 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 [6] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: none - Send Get request for Change interface state task - Check HTTP Response Status Code Is 405 - -PUT Change interface state task - Conflict - Method not implemented - [Documentation] Test ID: 8.3.1.7.4 - ... 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 [6] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: none - Send Put request for Change interface state task - Check HTTP Response Status Code Is 405 - -PATCH Change interface state task - Conflict - Method not implemented - [Documentation] Test ID: 8.3.1.7.5 - ... 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 [6] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: none - Send Patch request for Change interface state task - Check HTTP Response Status Code Is 405 - -DELETE Change interface state task - Conflict - Method not implemented - [Documentation] Test ID: 8.3.1.7.6 - ... 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 [6] V3.3.1 - ... Config ID: Config_prod_NFV-MANO - ... Applicability: none - ... Post-Conditions: none - Send Delete request for Change interface state task +** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library JSONLibrary +Library OperatingSystem +Resource NFVMANOCimKeywords.robot +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library MockServerLibrary + +*** Test Cases *** +POST Change interface state task + [Documentation] Test ID: 8.3.1.7.1 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: interface status changed + Send Post request for Change interface state task + 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 - Conflict + [Documentation] Test ID: 8.3.1.7.2 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Post request for Change interface state task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails + +GET Change interface state task - Method not implemented + [Documentation] Test ID: 8.3.1.7.3 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Get request for Change interface state task + Check HTTP Response Status Code Is 405 + +PUT Change interface state task - Conflict - Method not implemented + [Documentation] Test ID: 8.3.1.7.4 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Put request for Change interface state task + Check HTTP Response Status Code Is 405 + +PATCH Change interface state task - Conflict - Method not implemented + [Documentation] Test ID: 8.3.1.7.5 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Send Patch request for Change interface state task + Check HTTP Response Status Code Is 405 + +DELETE Change interface state task - Conflict - Method not implemented + [Documentation] Test ID: 8.3.1.7.6 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_NFV-MANO + ... 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 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 2240a6068..57e609f64 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -433,7 +433,7 @@ Send Post request for Change interface state task ${output}= Output response Set Suite Variable ${response} ${output} -Wait for interface state change success notification and validate status +Check PostCondition NFV-MANO service interface state matches the requested state Wait Until Keyword Succeeds ${retry} ${polling} Check interface state Check interface state -- GitLab From 62c853c68e27d55c7de21e2155678e8bca2640ec Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 4 Nov 2020 15:22:21 +0100 Subject: [PATCH 109/116] removed libspecs --- libspecs/BuiltIn.libspec | 2823 -------------------- libspecs/Collections.libspec | 880 ------ libspecs/DateTime.libspec | 512 ---- libspecs/DependencyLibrary_bb1d1ad.libspec | 55 - libspecs/Dialogs.libspec | 112 - libspecs/Easter.libspec | 15 - libspecs/JSONLibrary_17ae429.libspec | 171 -- libspecs/JSONSchemaLibrary_c1d7acb.libspec | 31 - libspecs/MockServerLibrary_03fd3d4.libspec | 258 -- libspecs/OperatingSystem.libspec | 1138 -------- libspecs/Process.libspec | 637 ----- libspecs/REST_04a9321.libspec | 999 ------- libspecs/Reserved.libspec | 87 - libspecs/Screenshot.libspec | 132 - libspecs/String.libspec | 722 ----- libspecs/Telnet.libspec | 744 ------ libspecs/XML.libspec | 1365 ---------- 17 files changed, 10681 deletions(-) delete mode 100644 libspecs/BuiltIn.libspec delete mode 100644 libspecs/Collections.libspec delete mode 100644 libspecs/DateTime.libspec delete mode 100644 libspecs/DependencyLibrary_bb1d1ad.libspec delete mode 100644 libspecs/Dialogs.libspec delete mode 100644 libspecs/Easter.libspec delete mode 100644 libspecs/JSONLibrary_17ae429.libspec delete mode 100644 libspecs/JSONSchemaLibrary_c1d7acb.libspec delete mode 100644 libspecs/MockServerLibrary_03fd3d4.libspec delete mode 100644 libspecs/OperatingSystem.libspec delete mode 100644 libspecs/Process.libspec delete mode 100644 libspecs/REST_04a9321.libspec delete mode 100644 libspecs/Reserved.libspec delete mode 100644 libspecs/Screenshot.libspec delete mode 100644 libspecs/String.libspec delete mode 100644 libspecs/Telnet.libspec delete mode 100644 libspecs/XML.libspec diff --git a/libspecs/BuiltIn.libspec b/libspecs/BuiltIn.libspec deleted file mode 100644 index 1f1b093cf..000000000 --- a/libspecs/BuiltIn.libspec +++ /dev/null @@ -1,2823 +0,0 @@ - - -3.1 -global -yes -An always available standard library with often needed keywords. - -``BuiltIn`` is Robot Framework's standard library that provides a set -of generic keywords needed often. It is imported automatically and -thus always available. The provided keywords can be used, for example, -for verifications (e.g. `Should Be Equal`, `Should Contain`), -conversions (e.g. `Convert To Integer`) and for various other purposes -(e.g. `Log`, `Sleep`, `Run Keyword If`, `Set Global Variable`). - -== Table of contents == - -- `HTML error messages` -- `Evaluating expressions` -- `Boolean arguments` -- `Pattern matching` -- `Multiline string comparisons` -- `Shortcuts` -- `Keywords` - -= HTML error messages = - -Many of the keywords accept an optional error message to use if the keyword -fails, and it is possible to use HTML in these messages by prefixing them -with ``*HTML*``. See `Fail` keyword for a usage example. Notice that using -HTML in messages is not limited to BuiltIn library but works with any -error message. - -= Evaluating expressions = - -Many keywords, such as `Evaluate`, `Run Keyword If` and `Should Be True`, -accept an expression that is evaluated in Python. These expressions are -evaluated using Python's -[http://docs.python.org/library/functions.html#eval|eval] function so -that all Python built-ins like ``len()`` and ``int()`` are available. -`Evaluate` allows configuring the execution namespace with custom modules, -and other keywords have [http://docs.python.org/library/os.html|os] -and [http://docs.python.org/library/sys.html|sys] modules available -automatically. - -Examples: -| `Run Keyword If` | os.sep == '/' | Log | Not on Windows | -| ${random int} = | `Evaluate` | random.randint(0, 5) | modules=random | - -When a variable is used in the expressing using the normal ``${variable}`` -syntax, its value is replaces before the expression is evaluated. This -means that the value used in the expression will be the string -representation of the variable value, not the variable value itself. -This is not a problem with numbers and other objects that have a string -representation that can be evaluated directly, but with other objects -the behavior depends on the string representation. Most importantly, -strings must always be quoted, and if they can contain newlines, they must -be triple quoted. - -Examples: -| `Should Be True` | ${rc} < 10 | Return code greater than 10 | -| `Run Keyword If` | '${status}' == 'PASS' | Log | Passed | -| `Run Keyword If` | 'FAIL' in '''${output}''' | Log | Output contains FAIL | - -Starting from Robot Framework 2.9, variables themselves are automatically -available in the evaluation namespace. They can be accessed using special -variable syntax without the curly braces like ``$variable``. These -variables should never be quoted, and in fact they are not even replaced -inside strings. - -Examples: -| `Should Be True` | $rc < 10 | Return code greater than 10 | -| `Run Keyword If` | $status == 'PASS' | `Log` | Passed | -| `Run Keyword If` | 'FAIL' in $output | `Log` | Output contains FAIL | -| `Should Be True` | len($result) > 1 and $result[1] == 'OK' | - -Using the ``$variable`` syntax slows down expression evaluation a little. -This should not typically matter, but should be taken into account if -complex expressions are evaluated often and there are strict time -constrains. - -Notice that instead of creating complicated expressions, it is often better -to move the logic into a test library. That eases maintenance and can also -enhance execution speed. - -= Boolean arguments = - -Some keywords accept arguments that are handled as Boolean values true or -false. If such an argument is given as a string, it is considered false if -it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or -``0``, case-insensitively. Keywords verifying something that allow dropping -actual and expected values from the possible error message also consider -string ``no values`` to be false. Other strings are considered true -regardless their value, and other argument types are tested using the same -[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. - -True examples: -| `Should Be Equal` | ${x} | ${y} | Custom error | values=True | # Strings are generally true. | -| `Should Be Equal` | ${x} | ${y} | Custom error | values=yes | # Same as the above. | -| `Should Be Equal` | ${x} | ${y} | Custom error | values=${TRUE} | # Python ``True`` is true. | -| `Should Be Equal` | ${x} | ${y} | Custom error | values=${42} | # Numbers other than 0 are true. | - -False examples: -| `Should Be Equal` | ${x} | ${y} | Custom error | values=False | # String ``false`` is false. | -| `Should Be Equal` | ${x} | ${y} | Custom error | values=no | # Also string ``no`` is false. | -| `Should Be Equal` | ${x} | ${y} | Custom error | values=${EMPTY} | # Empty string is false. | -| `Should Be Equal` | ${x} | ${y} | Custom error | values=${FALSE} | # Python ``False`` is false. | -| `Should Be Equal` | ${x} | ${y} | Custom error | values=no values | # ``no values`` works with ``values`` argument | - -Considering string ``NONE`` false is new in Robot Framework 3.0.3 and -considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. - -= Pattern matching = - -Many keywords accepts arguments as either glob or regular expression -patterns. - -== Glob patterns == - -Some keywords, for example `Should Match`, support so called -[http://en.wikipedia.org/wiki/Glob_(programming)|glob patterns] where: - -| ``*`` | matches any string, even an empty string | -| ``?`` | matches any single character | -| ``[chars]`` | matches one character in the bracket | -| ``[!chars]`` | matches one character not in the bracket | -| ``[a-z]`` | matches one character from the range in the bracket | -| ``[!a-z]`` | matches one character not from the range in the bracket | - -Unlike with glob patterns normally, path separator characters ``/`` and -``\`` and the newline character ``\n`` are matches by the above -wildcards. - -Support for brackets like ``[abc]`` and ``[!a-z]`` is new in -Robot Framework 3.1 - -== Regular expressions == - -Some keywords, for example `Should Match Regexp`, support -[http://en.wikipedia.org/wiki/Regular_expression|regular expressions] -that are more powerful but also more complicated that glob patterns. -The regular expression support is implemented using Python's -[http://docs.python.org/library/re.html|re module] and its documentation -should be consulted for more information about the syntax. - -Because the backslash character (``\``) is an escape character in -Robot Framework test data, possible backslash characters in regular -expressions need to be escaped with another backslash like ``\\d\\w+``. -Strings that may contain special characters but should be handled -as literal strings, can be escaped with the `Regexp Escape` keyword. - -= Multiline string comparisons = - -`Should Be Equal` and `Should Be Equal As Strings` report the failures using -[http://en.wikipedia.org/wiki/Diff_utility#Unified_format|unified diff -format] if both strings have more than two lines. New in Robot Framework -2.9.1. - -Example: -| ${first} = | `Catenate` | SEPARATOR=\n | Not in second | Same | Differs | Same | -| ${second} = | `Catenate` | SEPARATOR=\n | Same | Differs2 | Same | Not in first | -| `Should Be Equal` | ${first} | ${second} | - -Results in the following error message: - -| Multiline strings are different: -| --- first -| +++ second -| @@ -1,4 +1,4 @@ -| -Not in second -| Same -| -Differs -| +Differs2 -| Same -| +Not in first - - -object -method_name -*args -**kwargs - -Calls the named method of the given object with the provided arguments. - -The possible return value from the method is returned and can be -assigned to a variable. Keyword fails both if the object does not have -a method with the given name or if executing the method raises an -exception. - -Support for ``**kwargs`` is new in Robot Framework 2.9. Since that -possible equal signs in other arguments must be escaped with a -backslash like ``\=``. - -Examples: -| Call Method | ${hashtable} | put | myname | myvalue | -| ${isempty} = | Call Method | ${hashtable} | isEmpty | | -| Should Not Be True | ${isempty} | | | | -| ${value} = | Call Method | ${hashtable} | get | myname | -| Should Be Equal | ${value} | myvalue | | | -| Call Method | ${object} | kwargs | name=value | foo=bar | -| Call Method | ${object} | positional | escaped\=equals | - - - - - -*items - -Catenates the given items together and returns the resulted string. - -By default, items are catenated with spaces, but if the first item -contains the string ``SEPARATOR=<sep>``, the separator ``<sep>`` is -used instead. Items are converted into strings when necessary. - -Examples: -| ${str1} = | Catenate | Hello | world | | -| ${str2} = | Catenate | SEPARATOR=--- | Hello | world | -| ${str3} = | Catenate | SEPARATOR= | Hello | world | -=> -| ${str1} = 'Hello world' -| ${str2} = 'Hello---world' -| ${str3} = 'Helloworld' - - - - - -*messages - -Displays the given messages in the log file as keyword arguments. - -This keyword does nothing with the arguments it receives, but as they -are visible in the log, this keyword can be used to display simple -messages. Given arguments are ignored so thoroughly that they can even -contain non-existing variables. If you are interested about variable -values, you can use the `Log` or `Log Many` keywords. - - - - - - -Skips the current for loop iteration and continues from the next. - -Skips the remaining keywords in the current for loop iteration and -continues from the next one. Can be used directly in a for loop or -in a keyword that the loop uses. - -Example: -| :FOR | ${var} | IN | @{VALUES} | -| | Run Keyword If | '${var}' == 'CONTINUE' | Continue For Loop | -| | Do Something | ${var} | - -See `Continue For Loop If` to conditionally continue a for loop without -using `Run Keyword If` or other wrapper keywords. - - - - - -condition - -Skips the current for loop iteration if the ``condition`` is true. - -A wrapper for `Continue For Loop` to continue a for loop based on -the given condition. The condition is evaluated using the same -semantics as with `Should Be True` keyword. - -Example: -| :FOR | ${var} | IN | @{VALUES} | -| | Continue For Loop If | '${var}' == 'CONTINUE' | -| | Do Something | ${var} | - - - - - -item -base=None -prefix=None -length=None - -Converts the given item to a binary string. - -The ``item``, with an optional ``base``, is first converted to an -integer using `Convert To Integer` internally. After that it -is converted to a binary number (base 2) represented as a -string such as ``1011``. - -The returned value can contain an optional ``prefix`` and can be -required to be of minimum ``length`` (excluding the prefix and a -possible minus sign). If the value is initially shorter than -the required length, it is padded with zeros. - -Examples: -| ${result} = | Convert To Binary | 10 | | | # Result is 1010 | -| ${result} = | Convert To Binary | F | base=16 | prefix=0b | # Result is 0b1111 | -| ${result} = | Convert To Binary | -2 | prefix=B | length=4 | # Result is -B0010 | - -See also `Convert To Integer`, `Convert To Octal` and `Convert To Hex`. - - - - - -item - -Converts the given item to Boolean true or false. - -Handles strings ``True`` and ``False`` (case-insensitive) as expected, -otherwise returns item's -[http://docs.python.org/library/stdtypes.html#truth|truth value] -using Python's ``bool()`` method. - - - - - -input -input_type=text - -Converts the given ``input`` to bytes according to the ``input_type``. - -Valid input types are listed below: - -- ``text:`` Converts text to bytes character by character. All - characters with ordinal below 256 can be used and are converted to - bytes with same values. Many characters are easiest to represent - using escapes like ``\x00`` or ``\xff``. Supports both Unicode - strings and bytes. - -- ``int:`` Converts integers separated by spaces to bytes. Similarly as - with `Convert To Integer`, it is possible to use binary, octal, or - hex values by prefixing the values with ``0b``, ``0o``, or ``0x``, - respectively. - -- ``hex:`` Converts hexadecimal values to bytes. Single byte is always - two characters long (e.g. ``01`` or ``FF``). Spaces are ignored and - can be used freely as a visual separator. - -- ``bin:`` Converts binary values to bytes. Single byte is always eight - characters long (e.g. ``00001010``). Spaces are ignored and can be - used freely as a visual separator. - -In addition to giving the input as a string, it is possible to use -lists or other iterables containing individual characters or numbers. -In that case numbers do not need to be padded to certain length and -they cannot contain extra spaces. - -Examples (last column shows returned bytes): -| ${bytes} = | Convert To Bytes | hyvä | | # hyv\xe4 | -| ${bytes} = | Convert To Bytes | \xff\x07 | | # \xff\x07 | -| ${bytes} = | Convert To Bytes | 82 70 | int | # RF | -| ${bytes} = | Convert To Bytes | 0b10 0x10 | int | # \x02\x10 | -| ${bytes} = | Convert To Bytes | ff 00 07 | hex | # \xff\x00\x07 | -| ${bytes} = | Convert To Bytes | 5246212121 | hex | # RF!!! | -| ${bytes} = | Convert To Bytes | 0000 1000 | bin | # \x08 | -| ${input} = | Create List | 1 | 2 | 12 | -| ${bytes} = | Convert To Bytes | ${input} | int | # \x01\x02\x0c | -| ${bytes} = | Convert To Bytes | ${input} | hex | # \x01\x02\x12 | - -Use `Encode String To Bytes` in ``String`` library if you need to -convert text to bytes using a certain encoding. - - - - - -item -base=None -prefix=None -length=None -lowercase=False - -Converts the given item to a hexadecimal string. - -The ``item``, with an optional ``base``, is first converted to an -integer using `Convert To Integer` internally. After that it -is converted to a hexadecimal number (base 16) represented as -a string such as ``FF0A``. - -The returned value can contain an optional ``prefix`` and can be -required to be of minimum ``length`` (excluding the prefix and a -possible minus sign). If the value is initially shorter than -the required length, it is padded with zeros. - -By default the value is returned as an upper case string, but the -``lowercase`` argument a true value (see `Boolean arguments`) turns -the value (but not the given prefix) to lower case. - -Examples: -| ${result} = | Convert To Hex | 255 | | | # Result is FF | -| ${result} = | Convert To Hex | -10 | prefix=0x | length=2 | # Result is -0x0A | -| ${result} = | Convert To Hex | 255 | prefix=X | lowercase=yes | # Result is Xff | - -See also `Convert To Integer`, `Convert To Binary` and `Convert To Octal`. - - - - - -item -base=None - -Converts the given item to an integer number. - -If the given item is a string, it is by default expected to be an -integer in base 10. There are two ways to convert from other bases: - -- Give base explicitly to the keyword as ``base`` argument. - -- Prefix the given string with the base so that ``0b`` means binary - (base 2), ``0o`` means octal (base 8), and ``0x`` means hex (base 16). - The prefix is considered only when ``base`` argument is not given and - may itself be prefixed with a plus or minus sign. - -The syntax is case-insensitive and possible spaces are ignored. - -Examples: -| ${result} = | Convert To Integer | 100 | | # Result is 100 | -| ${result} = | Convert To Integer | FF AA | 16 | # Result is 65450 | -| ${result} = | Convert To Integer | 100 | 8 | # Result is 64 | -| ${result} = | Convert To Integer | -100 | 2 | # Result is -4 | -| ${result} = | Convert To Integer | 0b100 | | # Result is 4 | -| ${result} = | Convert To Integer | -0x100 | | # Result is -256 | - -See also `Convert To Number`, `Convert To Binary`, `Convert To Octal`, -`Convert To Hex`, and `Convert To Bytes`. - - - - - -item -precision=None - -Converts the given item to a floating point number. - -If the optional ``precision`` is positive or zero, the returned number -is rounded to that number of decimal digits. Negative precision means -that the number is rounded to the closest multiple of 10 to the power -of the absolute precision. If a number is equally close to a certain -precision, it is always rounded away from zero. - -Examples: -| ${result} = | Convert To Number | 42.512 | | # Result is 42.512 | -| ${result} = | Convert To Number | 42.512 | 1 | # Result is 42.5 | -| ${result} = | Convert To Number | 42.512 | 0 | # Result is 43.0 | -| ${result} = | Convert To Number | 42.512 | -1 | # Result is 40.0 | - -Notice that machines generally cannot store floating point numbers -accurately. This may cause surprises with these numbers in general -and also when they are rounded. For more information see, for example, -these resources: - -- http://docs.python.org/tutorial/floatingpoint.html -- http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition - -If you want to avoid possible problems with floating point numbers, -you can implement custom keywords using Python's -[http://docs.python.org/library/decimal.html|decimal] or -[http://docs.python.org/library/fractions.html|fractions] modules. - -If you need an integer number, use `Convert To Integer` instead. - - - - - -item -base=None -prefix=None -length=None - -Converts the given item to an octal string. - -The ``item``, with an optional ``base``, is first converted to an -integer using `Convert To Integer` internally. After that it -is converted to an octal number (base 8) represented as a -string such as ``775``. - -The returned value can contain an optional ``prefix`` and can be -required to be of minimum ``length`` (excluding the prefix and a -possible minus sign). If the value is initially shorter than -the required length, it is padded with zeros. - -Examples: -| ${result} = | Convert To Octal | 10 | | | # Result is 12 | -| ${result} = | Convert To Octal | -F | base=16 | prefix=0 | # Result is -017 | -| ${result} = | Convert To Octal | 16 | prefix=oct | length=4 | # Result is oct0020 | - -See also `Convert To Integer`, `Convert To Binary` and `Convert To Hex`. - - - - - -item - -Converts the given item to a Unicode string. - -Uses ``__unicode__`` or ``__str__`` method with Python objects and -``toString`` with Java objects. - -Use `Encode String To Bytes` and `Decode Bytes To String` keywords -in ``String`` library if you need to convert between Unicode and byte -strings using different encodings. Use `Convert To Bytes` if you just -want to create byte strings. - - - - - -*items - -Creates and returns a dictionary based on the given ``items``. - -Items are typically given using the ``key=value`` syntax same way as -``&{dictionary}`` variables are created in the Variable table. Both -keys and values can contain variables, and possible equal sign in key -can be escaped with a backslash like ``escaped\=key=value``. It is -also possible to get items from existing dictionaries by simply using -them like ``&{dict}``. - -Alternatively items can be specified so that keys and values are given -separately. This and the ``key=value`` syntax can even be combined, -but separately given items must be first. - -If same key is used multiple times, the last value has precedence. -The returned dictionary is ordered, and values with strings as keys -can also be accessed using a convenient dot-access syntax like -``${dict.key}``. - -Examples: -| &{dict} = | Create Dictionary | key=value | foo=bar | | | # key=value syntax | -| Should Be True | ${dict} == {'key': 'value', 'foo': 'bar'} | -| &{dict2} = | Create Dictionary | key | value | foo | bar | # separate key and value | -| Should Be Equal | ${dict} | ${dict2} | -| &{dict} = | Create Dictionary | ${1}=${2} | &{dict} | foo=new | | # using variables | -| Should Be True | ${dict} == {1: 2, 'key': 'value', 'foo': 'new'} | -| Should Be Equal | ${dict.key} | value | | | | # dot-access | - -This keyword was changed in Robot Framework 2.9 in many ways: -- Moved from ``Collections`` library to ``BuiltIn``. -- Support also non-string keys in ``key=value`` syntax. -- Returned dictionary is ordered and dot-accessible. -- Old syntax to give keys and values separately was deprecated, but - deprecation was later removed in RF 3.0.1. - - - - - -*items - -Returns a list containing given items. - -The returned list can be assigned both to ``${scalar}`` and ``@{list}`` -variables. - -Examples: -| @{list} = | Create List | a | b | c | -| ${scalar} = | Create List | a | b | c | -| ${ints} = | Create List | ${1} | ${2} | ${3} | - - - - - -expression -modules=None -namespace=None - -Evaluates the given expression in Python and returns the results. - -``expression`` is evaluated in Python as explained in `Evaluating -expressions`. - -``modules`` argument can be used to specify a comma separated -list of Python modules to be imported and added to the evaluation -namespace. - -``namespace`` argument can be used to pass a custom evaluation -namespace as a dictionary. Possible ``modules`` are added to this -namespace. - -Variables used like ``${variable}`` are replaced in the expression -before evaluation. Variables are also available in the evaluation -namespace and can be accessed using special syntax ``$variable``. -This is a new feature in Robot Framework 2.9 and it is explained more -thoroughly in `Evaluating expressions`. - -Examples (expecting ``${result}`` is 3.14): -| ${status} = | Evaluate | 0 < ${result} < 10 | # Would also work with string '3.14' | -| ${status} = | Evaluate | 0 < $result < 10 | # Using variable itself, not string representation | -| ${random} = | Evaluate | random.randint(0, sys.maxint) | modules=random, sys | -| ${ns} = | Create Dictionary | x=${4} | y=${2} | -| ${result} = | Evaluate | x*10 + y | namespace=${ns} | -=> -| ${status} = True -| ${random} = <random integer> -| ${result} = 42 - - - - - - -Stops executing the enclosing for loop. - -Exits the enclosing for loop and continues execution after it. -Can be used directly in a for loop or in a keyword that the loop uses. - -Example: -| :FOR | ${var} | IN | @{VALUES} | -| | Run Keyword If | '${var}' == 'EXIT' | Exit For Loop | -| | Do Something | ${var} | - -See `Exit For Loop If` to conditionally exit a for loop without -using `Run Keyword If` or other wrapper keywords. - - - - - -condition - -Stops executing the enclosing for loop if the ``condition`` is true. - -A wrapper for `Exit For Loop` to exit a for loop based on -the given condition. The condition is evaluated using the same -semantics as with `Should Be True` keyword. - -Example: -| :FOR | ${var} | IN | @{VALUES} | -| | Exit For Loop If | '${var}' == 'EXIT' | -| | Do Something | ${var} | - - - - - -msg=None -*tags - -Fails the test with the given message and optionally alters its tags. - -The error message is specified using the ``msg`` argument. -It is possible to use HTML in the given error message, similarly -as with any other keyword accepting an error message, by prefixing -the error with ``*HTML*``. - -It is possible to modify tags of the current test case by passing tags -after the message. Tags starting with a hyphen (e.g. ``-regression``) -are removed and others added. Tags are modified using `Set Tags` and -`Remove Tags` internally, and the semantics setting and removing them -are the same as with these keywords. - -Examples: -| Fail | Test not ready | | | # Fails with the given message. | -| Fail | *HTML*<b>Test not ready</b> | | | # Fails using HTML in the message. | -| Fail | Test not ready | not-ready | | # Fails and adds 'not-ready' tag. | -| Fail | OS not supported | -regression | | # Removes tag 'regression'. | -| Fail | My message | tag | -t* | # Removes all tags starting with 't' except the newly added 'tag'. | - -See `Fatal Error` if you need to stop the whole test execution. - - - - - -msg=None - -Stops the whole test execution. - -The test or suite where this keyword is used fails with the provided -message, and subsequent tests fail with a canned message. -Possible teardowns will nevertheless be executed. - -See `Fail` if you only want to stop one test case unconditionally. - - - - - -item1 -item2 - -Returns and logs how many times ``item2`` is found from ``item1``. - -This keyword works with Python strings and lists and all objects -that either have ``count`` method or can be converted to Python lists. - -Example: -| ${count} = | Get Count | ${some item} | interesting value | -| Should Be True | 5 < ${count} < 10 | - - - - - -item - -Returns and logs the length of the given item as an integer. - -The item can be anything that has a length, for example, a string, -a list, or a mapping. The keyword first tries to get the length with -the Python function ``len``, which calls the item's ``__len__`` method -internally. If that fails, the keyword tries to call the item's -possible ``length`` and ``size`` methods directly. The final attempt is -trying to get the value of the item's ``length`` attribute. If all -these attempts are unsuccessful, the keyword fails. - -Examples: -| ${length} = | Get Length | Hello, world! | | -| Should Be Equal As Integers | ${length} | 13 | -| @{list} = | Create List | Hello, | world! | -| ${length} = | Get Length | ${list} | | -| Should Be Equal As Integers | ${length} | 2 | - -See also `Length Should Be`, `Should Be Empty` and `Should Not Be -Empty`. - - - - - -name=None -all=False - -Returns the currently active instance of the specified test library. - -This keyword makes it easy for test libraries to interact with -other test libraries that have state. This is illustrated by -the Python example below: - -| from robot.libraries.BuiltIn import BuiltIn -| -| def title_should_start_with(expected): -| seleniumlib = BuiltIn().get_library_instance('SeleniumLibrary') -| title = seleniumlib.get_title() -| if not title.startswith(expected): -| raise AssertionError("Title '%s' did not start with '%s'" -| % (title, expected)) - -It is also possible to use this keyword in the test data and -pass the returned library instance to another keyword. If a -library is imported with a custom name, the ``name`` used to get -the instance must be that name and not the original library name. - -If the optional argument ``all`` is given a true value, then a -dictionary mapping all library names to instances will be returned. -This feature is new in Robot Framework 2.9.2. - -Example: -| &{all libs} = | Get library instance | all=True | - - - - - -format=timestamp -time_=NOW - -Returns the given time in the requested format. - -*NOTE:* DateTime library contains much more flexible keywords for -getting the current date and time and for date and time handling in -general. - -How time is returned is determined based on the given ``format`` -string as follows. Note that all checks are case-insensitive. - -1) If ``format`` contains the word ``epoch``, the time is returned - in seconds after the UNIX epoch (1970-01-01 00:00:00 UTC). - The return value is always an integer. - -2) If ``format`` contains any of the words ``year``, ``month``, - ``day``, ``hour``, ``min``, or ``sec``, only the selected parts are - returned. The order of the returned parts is always the one - in the previous sentence and the order of words in ``format`` - is not significant. The parts are returned as zero-padded - strings (e.g. May -> ``05``). - -3) Otherwise (and by default) the time is returned as a - timestamp string in the format ``2006-02-24 15:08:31``. - -By default this keyword returns the current local time, but -that can be altered using ``time`` argument as explained below. -Note that all checks involving strings are case-insensitive. - -1) If ``time`` is a number, or a string that can be converted to - a number, it is interpreted as seconds since the UNIX epoch. - This documentation was originally written about 1177654467 - seconds after the epoch. - -2) If ``time`` is a timestamp, that time will be used. Valid - timestamp formats are ``YYYY-MM-DD hh:mm:ss`` and - ``YYYYMMDD hhmmss``. - -3) If ``time`` is equal to ``NOW`` (default), the current local - time is used. - -4) If ``time`` is equal to ``UTC``, the current time in - [http://en.wikipedia.org/wiki/Coordinated_Universal_Time|UTC] - is used. - -5) If ``time`` is in the format like ``NOW - 1 day`` or ``UTC + 1 hour - 30 min``, the current local/UTC time plus/minus the time - specified with the time string is used. The time string format - is described in an appendix of Robot Framework User Guide. - -Examples (expecting the current local time is 2006-03-29 15:06:21): -| ${time} = | Get Time | | | | -| ${secs} = | Get Time | epoch | | | -| ${year} = | Get Time | return year | | | -| ${yyyy} | ${mm} | ${dd} = | Get Time | year,month,day | -| @{time} = | Get Time | year month day hour min sec | | | -| ${y} | ${s} = | Get Time | seconds and year | | -=> -| ${time} = '2006-03-29 15:06:21' -| ${secs} = 1143637581 -| ${year} = '2006' -| ${yyyy} = '2006', ${mm} = '03', ${dd} = '29' -| @{time} = ['2006', '03', '29', '15', '06', '21'] -| ${y} = '2006' -| ${s} = '21' - -Examples (expecting the current local time is 2006-03-29 15:06:21 and -UTC time is 2006-03-29 12:06:21): -| ${time} = | Get Time | | 1177654467 | # Time given as epoch seconds | -| ${secs} = | Get Time | sec | 2007-04-27 09:14:27 | # Time given as a timestamp | -| ${year} = | Get Time | year | NOW | # The local time of execution | -| @{time} = | Get Time | hour min sec | NOW + 1h 2min 3s | # 1h 2min 3s added to the local time | -| @{utc} = | Get Time | hour min sec | UTC | # The UTC time of execution | -| ${hour} = | Get Time | hour | UTC - 1 hour | # 1h subtracted from the UTC time | -=> -| ${time} = '2007-04-27 09:14:27' -| ${secs} = 27 -| ${year} = '2006' -| @{time} = ['16', '08', '24'] -| @{utc} = ['12', '06', '21'] -| ${hour} = '11' - - - - - -name -default=None - -Returns variable value or ``default`` if the variable does not exist. - -The name of the variable can be given either as a normal variable name -(e.g. ``${NAME}``) or in escaped format (e.g. ``\${NAME}``). Notice -that the former has some limitations explained in `Set Suite Variable`. - -Examples: -| ${x} = | Get Variable Value | ${a} | default | -| ${y} = | Get Variable Value | ${a} | ${b} | -| ${z} = | Get Variable Value | ${z} | | -=> -| ${x} gets value of ${a} if ${a} exists and string 'default' otherwise -| ${y} gets value of ${a} if ${a} exists and value of ${b} otherwise -| ${z} is set to Python None if it does not exist previously - -See `Set Variable If` for another keyword to set variables dynamically. - - - - - -no_decoration=False - -Returns a dictionary containing all variables in the current scope. - -Variables are returned as a special dictionary that allows accessing -variables in space, case, and underscore insensitive manner similarly -as accessing variables in the test data. This dictionary supports all -same operations as normal Python dictionaries and, for example, -Collections library can be used to access or modify it. Modifying the -returned dictionary has no effect on the variables available in the -current scope. - -By default variables are returned with ``${}``, ``@{}`` or ``&{}`` -decoration based on variable types. Giving a true value (see `Boolean -arguments`) to the optional argument ``no_decoration`` will return -the variables without the decoration. This option is new in Robot -Framework 2.9. - -Example: -| ${example_variable} = | Set Variable | example value | -| ${variables} = | Get Variables | | -| Dictionary Should Contain Key | ${variables} | \${example_variable} | -| Dictionary Should Contain Key | ${variables} | \${ExampleVariable} | -| Set To Dictionary | ${variables} | \${name} | value | -| Variable Should Not Exist | \${name} | | | -| ${no decoration} = | Get Variables | no_decoration=Yes | -| Dictionary Should Contain Key | ${no decoration} | example_variable | - - - - - -name -*args - -Imports a library with the given name and optional arguments. - -This functionality allows dynamic importing of libraries while tests -are running. That may be necessary, if the library itself is dynamic -and not yet available when test data is processed. In a normal case, -libraries should be imported using the Library setting in the Setting -table. - -This keyword supports importing libraries both using library -names and physical paths. When paths are used, they must be -given in absolute format or found from -[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#pythonpath-jythonpath-and-ironpythonpath| -search path]. Forward slashes can be used as path separators in all -operating systems. - -It is possible to pass arguments to the imported library and also -named argument syntax works if the library supports it. ``WITH NAME`` -syntax can be used to give a custom name to the imported library. - -Examples: -| Import Library | MyLibrary | -| Import Library | ${CURDIR}/../Library.py | arg1 | named=arg2 | -| Import Library | ${LIBRARIES}/Lib.java | arg | WITH NAME | JavaLib | - - - - - -path - -Imports a resource file with the given path. - -Resources imported with this keyword are set into the test suite scope -similarly when importing them in the Setting table using the Resource -setting. - -The given path must be absolute or found from -[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#pythonpath-jythonpath-and-ironpythonpath| -search path]. Forward slashes can be used as path separator regardless -the operating system. - -Examples: -| Import Resource | ${CURDIR}/resource.txt | -| Import Resource | ${CURDIR}/../resources/resource.html | -| Import Resource | found_from_pythonpath.robot | - - - - - -path -*args - -Imports a variable file with the given path and optional arguments. - -Variables imported with this keyword are set into the test suite scope -similarly when importing them in the Setting table using the Variables -setting. These variables override possible existing variables with -the same names. This functionality can thus be used to import new -variables, for example, for each test in a test suite. - -The given path must be absolute or found from -[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#pythonpath-jythonpath-and-ironpythonpath| -search path]. Forward slashes can be used as path separator regardless -the operating system. - -Examples: -| Import Variables | ${CURDIR}/variables.py | | | -| Import Variables | ${CURDIR}/../vars/env.py | arg1 | arg2 | -| Import Variables | file_from_pythonpath.py | | | - - - - - -name -msg=None - -Fails unless the given keyword exists in the current scope. - -Fails also if there are more than one keywords with the same name. -Works both with the short name (e.g. ``Log``) and the full name -(e.g. ``BuiltIn.Log``). - -The default error message can be overridden with the ``msg`` argument. - -See also `Variable Should Exist`. - - - - - -item -length -msg=None - -Verifies that the length of the given item is correct. - -The length of the item is got using the `Get Length` keyword. The -default error message can be overridden with the ``msg`` argument. - - - - - -message -level=INFO -html=False -console=False -repr=False - -Logs the given message with the given level. - -Valid levels are TRACE, DEBUG, INFO (default), HTML, WARN, and ERROR. -Messages below the current active log level are ignored. See -`Set Log Level` keyword and ``--loglevel`` command line option -for more details about setting the level. - -Messages logged with the WARN or ERROR levels will be automatically -visible also in the console and in the Test Execution Errors section -in the log file. - -Logging can be configured using optional ``html``, ``console`` and -``repr`` arguments. They are off by default, but can be enabled -by giving them a true value. See `Boolean arguments` section for more -information about true and false values. - -If the ``html`` argument is given a true value, the message will be -considered HTML and special characters such as ``<`` in it are not -escaped. For example, logging ``<img src="image.png">`` creates an -image when ``html`` is true, but otherwise the message is that exact -string. An alternative to using the ``html`` argument is using the HTML -pseudo log level. It logs the message as HTML using the INFO level. - -If the ``console`` argument is true, the message will be written to -the console where test execution was started from in addition to -the log file. This keyword always uses the standard output stream -and adds a newline after the written message. Use `Log To Console` -instead if either of these is undesirable, - -If the ``repr`` argument is true, the given item will be passed through -a custom version of Python's ``pprint.pformat()`` function before -logging it. This is useful, for example, when working with strings or -bytes containing invisible characters, or when working with nested data -structures. The custom version differs from the standard one so that it -omits the ``u`` prefix from Unicode strings and adds ``b`` prefix to -byte strings on Python 2. - -Examples: -| Log | Hello, world! | | | # Normal INFO message. | -| Log | Warning, world! | WARN | | # Warning. | -| Log | <b>Hello</b>, world! | html=yes | | # INFO message as HTML. | -| Log | <b>Hello</b>, world! | HTML | | # Same as above. | -| Log | <b>Hello</b>, world! | DEBUG | html=true | # DEBUG as HTML. | -| Log | Hello, console! | console=yes | | # Log also to the console. | -| Log | Hyvä \x00 | repr=yes | | # Log ``'Hyv\xe4 \x00'``. | - -See `Log Many` if you want to log multiple messages in one go, and -`Log To Console` if you only want to write to the console. - - - - - -*messages - -Logs the given messages as separate entries using the INFO level. - -Supports also logging list and dictionary variable items individually. - -Examples: -| Log Many | Hello | ${var} | -| Log Many | @{list} | &{dict} | - -See `Log` and `Log To Console` keywords if you want to use alternative -log levels, use HTML, or log to the console. - - - - - -message -stream=STDOUT -no_newline=False - -Logs the given message to the console. - -By default uses the standard output stream. Using the standard error -stream is possibly by giving the ``stream`` argument value ``STDERR`` -(case-insensitive). - -By default appends a newline to the logged message. This can be -disabled by giving the ``no_newline`` argument a true value (see -`Boolean arguments`). - -Examples: -| Log To Console | Hello, console! | | -| Log To Console | Hello, stderr! | STDERR | -| Log To Console | Message starts here and is | no_newline=true | -| Log To Console | continued without newline. | | - -This keyword does not log the message to the normal log file. Use -`Log` keyword, possibly with argument ``console``, if that is desired. - - - - - -level=INFO - -Logs all variables in the current scope with given log level. - - - - - - -Does absolutely nothing. - - - - - -message -*tags - -Skips rest of the current test, setup, or teardown with PASS status. - -This keyword can be used anywhere in the test data, but the place where -used affects the behavior: - -- When used in any setup or teardown (suite, test or keyword), passes - that setup or teardown. Possible keyword teardowns of the started - keywords are executed. Does not affect execution or statuses - otherwise. -- When used in a test outside setup or teardown, passes that particular - test case. Possible test and keyword teardowns are executed. - -Possible continuable failures before this keyword is used, as well as -failures in executed teardowns, will fail the execution. - -It is mandatory to give a message explaining why execution was passed. -By default the message is considered plain text, but starting it with -``*HTML*`` allows using HTML formatting. - -It is also possible to modify test tags passing tags after the message -similarly as with `Fail` keyword. Tags starting with a hyphen -(e.g. ``-regression``) are removed and others added. Tags are modified -using `Set Tags` and `Remove Tags` internally, and the semantics -setting and removing them are the same as with these keywords. - -Examples: -| Pass Execution | All features available in this version tested. | -| Pass Execution | Deprecated test. | deprecated | -regression | - -This keyword is typically wrapped to some other keyword, such as -`Run Keyword If`, to pass based on a condition. The most common case -can be handled also with `Pass Execution If`: - -| Run Keyword If | ${rc} < 0 | Pass Execution | Negative values are cool. | -| Pass Execution If | ${rc} < 0 | Negative values are cool. | - -Passing execution in the middle of a test, setup or teardown should be -used with care. In the worst case it leads to tests that skip all the -parts that could actually uncover problems in the tested application. -In cases where execution cannot continue do to external factors, -it is often safer to fail the test case and make it non-critical. - - - - - -condition -message -*tags - -Conditionally skips rest of the current test, setup, or teardown with PASS status. - -A wrapper for `Pass Execution` to skip rest of the current test, -setup or teardown based the given ``condition``. The condition is -evaluated similarly as with `Should Be True` keyword, and ``message`` -and ``*tags`` have same semantics as with `Pass Execution`. - -Example: -| :FOR | ${var} | IN | @{VALUES} | -| | Pass Execution If | '${var}' == 'EXPECTED' | Correct value was found | -| | Do Something | ${var} | - - - - - -*patterns - -Returns each argument string escaped for use as a regular expression. - -This keyword can be used to escape strings to be used with -`Should Match Regexp` and `Should Not Match Regexp` keywords. - -Escaping is done with Python's ``re.escape()`` function. - -Examples: -| ${escaped} = | Regexp Escape | ${original} | -| @{strings} = | Regexp Escape | @{strings} | - - - - - -name_or_instance - -Rechecks what keywords the specified library provides. - -Can be called explicitly in the test data or by a library itself -when keywords it provides have changed. - -The library can be specified by its name or as the active instance of -the library. The latter is especially useful if the library itself -calls this keyword as a method. - -New in Robot Framework 2.9. - - - - - -*tags - -Removes given ``tags`` from the current test or all tests in a suite. - -Tags can be given exactly or using a pattern with ``*``, ``?`` and -``[chars]`` acting as wildcards. See the `Glob patterns` section -for more information. - -This keyword can affect either one test case or all test cases in a -test suite similarly as `Set Tags` keyword. - -The current tags are available as a built-in variable ``@{TEST TAGS}``. - -Example: -| Remove Tags | mytag | something-* | ?ython | - -See `Set Tags` if you want to add certain tags and `Fail` if you want -to fail the test case after setting and/or removing tags. - - - - - -repeat -name -*args - -Executes the specified keyword multiple times. - -``name`` and ``args`` define the keyword that is executed similarly as -with `Run Keyword`. ``repeat`` specifies how many times (as a count) or -how long time (as a timeout) the keyword should be executed. - -If ``repeat`` is given as count, it specifies how many times the -keyword should be executed. ``repeat`` can be given as an integer or -as a string that can be converted to an integer. If it is a string, -it can have postfix ``times`` or ``x`` (case and space insensitive) -to make the expression more explicit. - -If ``repeat`` is given as timeout, it must be in Robot Framework's -time format (e.g. ``1 minute``, ``2 min 3 s``). Using a number alone -(e.g. ``1`` or ``1.5``) does not work in this context. - -If ``repeat`` is zero or negative, the keyword is not executed at -all. This keyword fails immediately if any of the execution -rounds fails. - -Examples: -| Repeat Keyword | 5 times | Go to Previous Page | -| Repeat Keyword | ${var} | Some Keyword | arg1 | arg2 | -| Repeat Keyword | 2 minutes | Some Keyword | arg1 | arg2 | - -Specifying ``repeat`` as a timeout is new in Robot Framework 3.0. - - - - - -text - -Replaces variables in the given text with their current values. - -If the text contains undefined variables, this keyword fails. -If the given ``text`` contains only a single variable, its value is -returned as-is and it can be any object. Otherwise this keyword -always returns a string. - -Example: - -The file ``template.txt`` contains ``Hello ${NAME}!`` and variable -``${NAME}`` has the value ``Robot``. - -| ${template} = | Get File | ${CURDIR}/template.txt | -| ${message} = | Replace Variables | ${template} | -| Should Be Equal | ${message} | Hello Robot! | - - - - - -*return_values - -Returns from the enclosing user keyword. - -This keyword can be used to return from a user keyword with PASS status -without executing it fully. It is also possible to return values -similarly as with the ``[Return]`` setting. For more detailed information -about working with the return values, see the User Guide. - -This keyword is typically wrapped to some other keyword, such as -`Run Keyword If` or `Run Keyword If Test Passed`, to return based -on a condition: - -| Run Keyword If | ${rc} < 0 | Return From Keyword | -| Run Keyword If Test Passed | Return From Keyword | - -It is possible to use this keyword to return from a keyword also inside -a for loop. That, as well as returning values, is demonstrated by the -`Find Index` keyword in the following somewhat advanced example. -Notice that it is often a good idea to move this kind of complicated -logic into a test library. - -| ***** Variables ***** -| @{LIST} = foo baz -| -| ***** Test Cases ***** -| Example -| ${index} = Find Index baz @{LIST} -| Should Be Equal ${index} ${1} -| ${index} = Find Index non existing @{LIST} -| Should Be Equal ${index} ${-1} -| -| ***** Keywords ***** -| Find Index -| [Arguments] ${element} @{items} -| ${index} = Set Variable ${0} -| :FOR ${item} IN @{items} -| \ Run Keyword If '${item}' == '${element}' Return From Keyword ${index} -| \ ${index} = Set Variable ${index + 1} -| Return From Keyword ${-1} # Also [Return] would work here. - -The most common use case, returning based on an expression, can be -accomplished directly with `Return From Keyword If`. See also -`Run Keyword And Return` and `Run Keyword And Return If`. - - - - - -condition -*return_values - -Returns from the enclosing user keyword if ``condition`` is true. - -A wrapper for `Return From Keyword` to return based on the given -condition. The condition is evaluated using the same semantics as -with `Should Be True` keyword. - -Given the same example as in `Return From Keyword`, we can rewrite the -`Find Index` keyword as follows: - -| ***** Keywords ***** -| Find Index -| [Arguments] ${element} @{items} -| ${index} = Set Variable ${0} -| :FOR ${item} IN @{items} -| \ Return From Keyword If '${item}' == '${element}' ${index} -| \ ${index} = Set Variable ${index + 1} -| Return From Keyword ${-1} # Also [Return] would work here. - -See also `Run Keyword And Return` and `Run Keyword And Return If`. - - - - - -name -*args - -Executes the given keyword with the given arguments. - -Because the name of the keyword to execute is given as an argument, it -can be a variable and thus set dynamically, e.g. from a return value of -another keyword or from the command line. - - - - - -name -*args - -Runs the keyword and continues execution even if a failure occurs. - -The keyword name and arguments work as with `Run Keyword`. - -Example: -| Run Keyword And Continue On Failure | Fail | This is a stupid example | -| Log | This keyword is executed | - -The execution is not continued if the failure is caused by invalid syntax, -timeout, or fatal exception. -Since Robot Framework 2.9, variable errors are caught by this keyword. - - - - - -expected_error -name -*args - -Runs the keyword and checks that the expected error occurred. - -The keyword to execute and its arguments are specified using ``name`` -and ``*args`` exactly like with `Run Keyword`. - -The expected error must be given in the same format as in Robot -Framework reports. By default it is interpreted as a glob pattern -with ``*``, ``?`` and ``[chars]`` as wildcards, but starting from -Robot Framework 3.1 that can be changed by using various prefixes -explained in the table below. Prefixes are case-sensitive and they -must be separated from the actual message with a colon and an -optional space like ``PREFIX: Message`` or ``PREFIX:Message``. - -| = Prefix = | = Explanation = | -| ``EQUALS`` | Exact match. Especially useful if the error contains glob wildcards. | -| ``STARTS`` | Error must start with the specified error. | -| ``REGEXP`` | Regular expression match. | -| ``GLOB`` | Same as the default behavior. | - -See the `Pattern matching` section for more information about glob -patterns and regular expressions. - -If the expected error occurs, the error message is returned and it can -be further processed or tested if needed. If there is no error, or the -error does not match the expected error, this keyword fails. - -Examples: -| Run Keyword And Expect Error | My error | Keyword | arg | -| Run Keyword And Expect Error | ValueError: * | Some Keyword | -| Run Keyword And Expect Error | STARTS: ValueError: | Some Keyword | -| Run Keyword And Expect Error | EQUALS:No match for '//input[@type="text"]' | -| ... | Find Element | //input[@type="text"] | -| ${msg} = | Run Keyword And Expect Error | * | -| ... | Keyword | arg1 | arg2 | -| Log To Console | ${msg} | - -Errors caused by invalid syntax, timeouts, or fatal exceptions are not -caught by this keyword. -Since Robot Framework 2.9, variable errors are caught by this keyword. - - - - - -name -*args - -Runs the given keyword with the given arguments and ignores possible error. - -This keyword returns two values, so that the first is either string -``PASS`` or ``FAIL``, depending on the status of the executed keyword. -The second value is either the return value of the keyword or the -received error message. See `Run Keyword And Return Status` If you are -only interested in the execution status. - -The keyword name and arguments work as in `Run Keyword`. See -`Run Keyword If` for a usage example. - -Errors caused by invalid syntax, timeouts, or fatal exceptions are not -caught by this keyword. Otherwise this keyword itself never fails. -Since Robot Framework 2.9, variable errors are caught by this keyword. - - - - - -name -*args - -Runs the specified keyword and returns from the enclosing user keyword. - -The keyword to execute is defined with ``name`` and ``*args`` exactly -like with `Run Keyword`. After running the keyword, returns from the -enclosing user keyword and passes possible return value from the -executed keyword further. Returning from a keyword has exactly same -semantics as with `Return From Keyword`. - -Example: -| `Run Keyword And Return` | `My Keyword` | arg1 | arg2 | -| # Above is equivalent to: | -| ${result} = | `My Keyword` | arg1 | arg2 | -| `Return From Keyword` | ${result} | | | - -Use `Run Keyword And Return If` if you want to run keyword and return -based on a condition. - - - - - -condition -name -*args - -Runs the specified keyword and returns from the enclosing user keyword. - -A wrapper for `Run Keyword And Return` to run and return based on -the given ``condition``. The condition is evaluated using the same -semantics as with `Should Be True` keyword. - -Example: -| `Run Keyword And Return If` | ${rc} > 0 | `My Keyword` | arg1 | arg2 | -| # Above is equivalent to: | -| `Run Keyword If` | ${rc} > 0 | `Run Keyword And Return` | `My Keyword ` | arg1 | arg2 | - -Use `Return From Keyword If` if you want to return a certain value -based on a condition. - - - - - -name -*args - -Runs the given keyword with given arguments and returns the status as a Boolean value. - -This keyword returns Boolean ``True`` if the keyword that is executed -succeeds and ``False`` if it fails. This is useful, for example, in -combination with `Run Keyword If`. If you are interested in the error -message or return value, use `Run Keyword And Ignore Error` instead. - -The keyword name and arguments work as in `Run Keyword`. - -Example: -| ${passed} = | `Run Keyword And Return Status` | Keyword | args | -| `Run Keyword If` | ${passed} | Another keyword | - -Errors caused by invalid syntax, timeouts, or fatal exceptions are not -caught by this keyword. Otherwise this keyword itself never fails. - - - - - -condition -name -*args - -Runs the given keyword with the given arguments, if ``condition`` is true. - -The given ``condition`` is evaluated in Python as explained in -`Evaluating expressions`, and ``name`` and ``*args`` have same -semantics as with `Run Keyword`. - -Example, a simple if/else construct: -| ${status} | ${value} = | `Run Keyword And Ignore Error` | `My Keyword` | -| `Run Keyword If` | '${status}' == 'PASS' | `Some Action` | arg | -| `Run Keyword Unless` | '${status}' == 'PASS' | `Another Action` | - -In this example, only either `Some Action` or `Another Action` is -executed, based on the status of `My Keyword`. Instead of `Run Keyword -And Ignore Error` you can also use `Run Keyword And Return Status`. - -Variables used like ``${variable}``, as in the examples above, are -replaced in the expression before evaluation. Variables are also -available in the evaluation namespace and can be accessed using special -syntax ``$variable``. This is a new feature in Robot Framework 2.9 -and it is explained more thoroughly in `Evaluating expressions`. - -Example: -| `Run Keyword If` | $result is None or $result == 'FAIL' | `Keyword` | - -This keyword supports also optional ELSE and ELSE IF branches. Both -of them are defined in ``*args`` and must use exactly format ``ELSE`` -or ``ELSE IF``, respectively. ELSE branches must contain first the -name of the keyword to execute and then its possible arguments. ELSE -IF branches must first contain a condition, like the first argument -to this keyword, and then the keyword to execute and its possible -arguments. It is possible to have ELSE branch after ELSE IF and to -have multiple ELSE IF branches. Nested `Run Keyword If` usage is not -supported when using ELSE and/or ELSE IF branches. - -Given previous example, if/else construct can also be created like this: -| ${status} | ${value} = | `Run Keyword And Ignore Error` | `My Keyword` | -| `Run Keyword If` | '${status}' == 'PASS' | `Some Action` | arg | ELSE | `Another Action` | - -The return value of this keyword is the return value of the actually -executed keyword or Python ``None`` if no keyword was executed (i.e. -if ``condition`` was false). Hence, it is recommended to use ELSE -and/or ELSE IF branches to conditionally assign return values from -keyword to variables (see `Set Variable If` if you need to set fixed -values conditionally). This is illustrated by the example below: - -| ${var1} = | `Run Keyword If` | ${rc} == 0 | `Some keyword returning a value` | -| ... | ELSE IF | 0 < ${rc} < 42 | `Another keyword` | -| ... | ELSE IF | ${rc} < 0 | `Another keyword with args` | ${rc} | arg2 | -| ... | ELSE | `Final keyword to handle abnormal cases` | ${rc} | -| ${var2} = | `Run Keyword If` | ${condition} | `Some keyword` | - -In this example, ${var2} will be set to ``None`` if ${condition} is -false. - -Notice that ``ELSE`` and ``ELSE IF`` control words must be used -explicitly and thus cannot come from variables. If you need to use -literal ``ELSE`` and ``ELSE IF`` strings as arguments, you can escape -them with a backslash like ``\ELSE`` and ``\ELSE IF``. - -Python's [http://docs.python.org/library/os.html|os] and -[http://docs.python.org/library/sys.html|sys] modules are -automatically imported when evaluating the ``condition``. -Attributes they contain can thus be used in the condition: - -| `Run Keyword If` | os.sep == '/' | `Unix Keyword` | -| ... | ELSE IF | sys.platform.startswith('java') | `Jython Keyword` | -| ... | ELSE | `Windows Keyword` | - - - - - -name -*args - -Runs the given keyword with the given arguments, if all critical tests passed. - -This keyword can only be used in suite teardown. Trying to use it in -any other place will result in an error. - -Otherwise, this keyword works exactly like `Run Keyword`, see its -documentation for more details. - - - - - -name -*args - -Runs the given keyword with the given arguments, if all tests passed. - -This keyword can only be used in a suite teardown. Trying to use it -anywhere else results in an error. - -Otherwise, this keyword works exactly like `Run Keyword`, see its -documentation for more details. - - - - - -name -*args - -Runs the given keyword with the given arguments, if any critical tests failed. - -This keyword can only be used in a suite teardown. Trying to use it -anywhere else results in an error. - -Otherwise, this keyword works exactly like `Run Keyword`, see its -documentation for more details. - - - - - -name -*args - -Runs the given keyword with the given arguments, if one or more tests failed. - -This keyword can only be used in a suite teardown. Trying to use it -anywhere else results in an error. - -Otherwise, this keyword works exactly like `Run Keyword`, see its -documentation for more details. - - - - - -name -*args - -Runs the given keyword with the given arguments, if the test failed. - -This keyword can only be used in a test teardown. Trying to use it -anywhere else results in an error. - -Otherwise, this keyword works exactly like `Run Keyword`, see its -documentation for more details. - -Prior to Robot Framework 2.9 failures in test teardown itself were -not detected by this keyword. - - - - - -name -*args - -Runs the given keyword with the given arguments, if the test passed. - -This keyword can only be used in a test teardown. Trying to use it -anywhere else results in an error. - -Otherwise, this keyword works exactly like `Run Keyword`, see its -documentation for more details. - -Prior to Robot Framework 2.9 failures in test teardown itself were -not detected by this keyword. - - - - - -name -*args - -Runs the given keyword if either a test or a keyword timeout has occurred. - -This keyword can only be used in a test teardown. Trying to use it -anywhere else results in an error. - -Otherwise, this keyword works exactly like `Run Keyword`, see its -documentation for more details. - - - - - -condition -name -*args - -Runs the given keyword with the given arguments if ``condition`` is false. - -See `Run Keyword If` for more information and an example. Notice that -this keyword does not support ``ELSE`` or ``ELSE IF`` branches like -`Run Keyword If` does, though. - - - - - -*keywords - -Executes all the given keywords in a sequence. - -This keyword is mainly useful in setups and teardowns when they need -to take care of multiple actions and creating a new higher level user -keyword would be an overkill. - -By default all arguments are expected to be keywords to be executed. - -Examples: -| `Run Keywords` | `Initialize database` | `Start servers` | `Clear logs` | -| `Run Keywords` | ${KW 1} | ${KW 2} | -| `Run Keywords` | @{KEYWORDS} | - -Keywords can also be run with arguments using upper case ``AND`` as -a separator between keywords. The keywords are executed so that the -first argument is the first keyword and proceeding arguments until -the first ``AND`` are arguments to it. First argument after the first -``AND`` is the second keyword and proceeding arguments until the next -``AND`` are its arguments. And so on. - -Examples: -| `Run Keywords` | `Initialize database` | db1 | AND | `Start servers` | server1 | server2 | -| `Run Keywords` | `Initialize database` | ${DB NAME} | AND | `Start servers` | @{SERVERS} | AND | `Clear logs` | -| `Run Keywords` | ${KW} | AND | @{KW WITH ARGS} | - -Notice that the ``AND`` control argument must be used explicitly and -cannot itself come from a variable. If you need to use literal ``AND`` -string as argument, you can either use variables or escape it with -a backslash like ``\AND``. - - - - - -name -*values - -Makes a variable available globally in all tests and suites. - -Variables set with this keyword are globally available in all -subsequent test suites, test cases and user keywords. Also variables -in variable tables are overridden. Variables assigned locally based -on keyword return values or by using `Set Test Variable` and -`Set Suite Variable` override these variables in that scope, but -the global value is not changed in those cases. - -In practice setting variables with this keyword has the same effect -as using command line options ``--variable`` and ``--variablefile``. -Because this keyword can change variables everywhere, it should be -used with care. - -See `Set Suite Variable` for more information and examples. - - - - - -*search_order - -Sets the resolution order to use when a name matches multiple keywords. - -The library search order is used to resolve conflicts when a keyword -name in the test data matches multiple keywords. The first library -(or resource, see below) containing the keyword is selected and that -keyword implementation used. If the keyword is not found from any library -(or resource), test executing fails the same way as when the search -order is not set. - -When this keyword is used, there is no need to use the long -``LibraryName.Keyword Name`` notation. For example, instead of -having - -| MyLibrary.Keyword | arg | -| MyLibrary.Another Keyword | -| MyLibrary.Keyword | xxx | - -you can have - -| Set Library Search Order | MyLibrary | -| Keyword | arg | -| Another Keyword | -| Keyword | xxx | - -This keyword can be used also to set the order of keywords in different -resource files. In this case resource names must be given without paths -or extensions like: - -| Set Library Search Order | resource | another_resource | - -*NOTE:* -- The search order is valid only in the suite where this keywords is used. -- Keywords in resources always have higher priority than - keywords in libraries regardless the search order. -- The old order is returned and can be used to reset the search order later. -- Library and resource names in the search order are both case and space - insensitive. - - - - - -level - -Sets the log threshold to the specified level and returns the old level. - -Messages below the level will not logged. The default logging level is -INFO, but it can be overridden with the command line option -``--loglevel``. - -The available levels: TRACE, DEBUG, INFO (default), WARN, ERROR and NONE (no -logging). - - - - - -doc -append=False -top=False - -Sets documentation for the current test suite. - -By default the possible existing documentation is overwritten, but -this can be changed using the optional ``append`` argument similarly -as with `Set Test Message` keyword. - -This keyword sets the documentation of the current suite by default. -If the optional ``top`` argument is given a true value (see `Boolean -arguments`), the documentation of the top level suite is altered -instead. - -The documentation of the current suite is available as a built-in -variable ``${SUITE DOCUMENTATION}``. - - - - - -name -value -append=False -top=False - -Sets metadata for the current test suite. - -By default possible existing metadata values are overwritten, but -this can be changed using the optional ``append`` argument similarly -as with `Set Test Message` keyword. - -This keyword sets the metadata of the current suite by default. -If the optional ``top`` argument is given a true value (see `Boolean -arguments`), the metadata of the top level suite is altered instead. - -The metadata of the current suite is available as a built-in variable -``${SUITE METADATA}`` in a Python dictionary. Notice that modifying this -variable directly has no effect on the actual metadata the suite has. - - - - - -name -*values - -Makes a variable available everywhere within the scope of the current suite. - -Variables set with this keyword are available everywhere within the -scope of the currently executed test suite. Setting variables with this -keyword thus has the same effect as creating them using the Variable -table in the test data file or importing them from variable files. - -Possible child test suites do not see variables set with this keyword -by default. Starting from Robot Framework 2.9, that can be controlled -by using ``children=<option>`` as the last argument. If the specified -``<option>`` is a non-empty string or any other value considered true -in Python, the variable is set also to the child suites. Parent and -sibling suites will never see variables set with this keyword. - -The name of the variable can be given either as a normal variable name -(e.g. ``${NAME}``) or in escaped format as ``\${NAME}`` or ``$NAME``. -Variable value can be given using the same syntax as when variables -are created in the Variable table. - -If a variable already exists within the new scope, its value will be -overwritten. Otherwise a new variable is created. If a variable already -exists within the current scope, the value can be left empty and the -variable within the new scope gets the value within the current scope. - -Examples: -| Set Suite Variable | ${SCALAR} | Hello, world! | -| Set Suite Variable | ${SCALAR} | Hello, world! | children=true | -| Set Suite Variable | @{LIST} | First item | Second item | -| Set Suite Variable | &{DICT} | key=value | foo=bar | -| ${ID} = | Get ID | -| Set Suite Variable | ${ID} | - -To override an existing value with an empty value, use built-in -variables ``${EMPTY}``, ``@{EMPTY}`` or ``&{EMPTY}``: - -| Set Suite Variable | ${SCALAR} | ${EMPTY} | -| Set Suite Variable | @{LIST} | @{EMPTY} | -| Set Suite Variable | &{DICT} | &{EMPTY} | - -*NOTE:* If the variable has value which itself is a variable (escaped -or not), you must always use the escaped format to set the variable: - -Example: -| ${NAME} = | Set Variable | \${var} | -| Set Suite Variable | ${NAME} | value | # Sets variable ${var} | -| Set Suite Variable | \${NAME} | value | # Sets variable ${NAME} | - -This limitation applies also to `Set Test Variable`, `Set Global -Variable`, `Variable Should Exist`, `Variable Should Not Exist` and -`Get Variable Value` keywords. - - - - - -*tags - -Adds given ``tags`` for the current test or all tests in a suite. - -When this keyword is used inside a test case, that test gets -the specified tags and other tests are not affected. - -If this keyword is used in a suite setup, all test cases in -that suite, recursively, gets the given tags. It is a failure -to use this keyword in a suite teardown. - -The current tags are available as a built-in variable ``@{TEST TAGS}``. - -See `Remove Tags` if you want to remove certain tags and `Fail` if -you want to fail the test case after setting and/or removing tags. - - - - - -name -*values - -Makes a variable available everywhere within the scope of the current task. - -This is an alias for `Set Test Variable` that is more applicable when -creating tasks, not tests. New in RF 3.1. - - - - - -doc -append=False - -Sets documentation for the current test case. - -By default the possible existing documentation is overwritten, but -this can be changed using the optional ``append`` argument similarly -as with `Set Test Message` keyword. - -The current test documentation is available as a built-in variable -``${TEST DOCUMENTATION}``. This keyword can not be used in suite -setup or suite teardown. - - - - - -message -append=False - -Sets message for the current test case. - -If the optional ``append`` argument is given a true value (see `Boolean -arguments`), the given ``message`` is added after the possible earlier -message by joining the messages with a space. - -In test teardown this keyword can alter the possible failure message, -but otherwise failures override messages set by this keyword. Notice -that in teardown the message is available as a built-in variable -``${TEST MESSAGE}``. - -It is possible to use HTML format in the message by starting the message -with ``*HTML*``. - -Examples: -| Set Test Message | My message | | -| Set Test Message | is continued. | append=yes | -| Should Be Equal | ${TEST MESSAGE} | My message is continued. | -| Set Test Message | `*`HTML`*` <b>Hello!</b> | | - -This keyword can not be used in suite setup or suite teardown. - - - - - -name -*values - -Makes a variable available everywhere within the scope of the current test. - -Variables set with this keyword are available everywhere within the -scope of the currently executed test case. For example, if you set a -variable in a user keyword, it is available both in the test case level -and also in all other user keywords used in the current test. Other -test cases will not see variables set with this keyword. - -See `Set Suite Variable` for more information and examples. - - - - - -*values - -Returns the given values which can then be assigned to a variables. - -This keyword is mainly used for setting scalar variables. -Additionally it can be used for converting a scalar variable -containing a list to a list variable or to multiple scalar variables. -It is recommended to use `Create List` when creating new lists. - -Examples: -| ${hi} = | Set Variable | Hello, world! | -| ${hi2} = | Set Variable | I said: ${hi} | -| ${var1} | ${var2} = | Set Variable | Hello | world | -| @{list} = | Set Variable | ${list with some items} | -| ${item1} | ${item2} = | Set Variable | ${list with 2 items} | - -Variables created with this keyword are available only in the -scope where they are created. See `Set Global Variable`, -`Set Test Variable` and `Set Suite Variable` for information on how to -set variables so that they are available also in a larger scope. - - - - - -condition -*values - -Sets variable based on the given condition. - -The basic usage is giving a condition and two values. The -given condition is first evaluated the same way as with the -`Should Be True` keyword. If the condition is true, then the -first value is returned, and otherwise the second value is -returned. The second value can also be omitted, in which case -it has a default value None. This usage is illustrated in the -examples below, where ``${rc}`` is assumed to be zero. - -| ${var1} = | Set Variable If | ${rc} == 0 | zero | nonzero | -| ${var2} = | Set Variable If | ${rc} > 0 | value1 | value2 | -| ${var3} = | Set Variable If | ${rc} > 0 | whatever | | -=> -| ${var1} = 'zero' -| ${var2} = 'value2' -| ${var3} = None - -It is also possible to have 'else if' support by replacing the -second value with another condition, and having two new values -after it. If the first condition is not true, the second is -evaluated and one of the values after it is returned based on -its truth value. This can be continued by adding more -conditions without a limit. - -| ${var} = | Set Variable If | ${rc} == 0 | zero | -| ... | ${rc} > 0 | greater than zero | less then zero | -| | -| ${var} = | Set Variable If | -| ... | ${rc} == 0 | zero | -| ... | ${rc} == 1 | one | -| ... | ${rc} == 2 | two | -| ... | ${rc} > 2 | greater than two | -| ... | ${rc} < 0 | less than zero | - -Use `Get Variable Value` if you need to set variables -dynamically based on whether a variable exist or not. - - - - - -item -msg=None - -Verifies that the given item is empty. - -The length of the item is got using the `Get Length` keyword. The -default error message can be overridden with the ``msg`` argument. - - - - - -first -second -msg=None -values=True -ignore_case=False - -Fails if the given objects are unequal. - -Optional ``msg`` and ``values`` arguments specify how to construct -the error message if this keyword fails: - -- If ``msg`` is not given, the error message is ``<first> != <second>``. -- If ``msg`` is given and ``values`` gets a true value (default), - the error message is ``<msg>: <first> != <second>``. -- If ``msg`` is given and ``values`` gets a false value, the error - message is simply ``<msg>``. See `Boolean arguments` for more details - about using false values. - -If ``ignore_case`` is given a true value (see `Boolean arguments`) and -arguments are strings, it indicates that comparison should be -case-insensitive. New option in Robot Framework 3.0.1. - -If both arguments are multiline strings, the comparison is done using -`multiline string comparisons`. - -Examples: -| Should Be Equal | ${x} | expected | -| Should Be Equal | ${x} | expected | Custom error message | -| Should Be Equal | ${x} | expected | Custom message | values=False | -| Should Be Equal | ${x} | expected | ignore_case=True | - - - - - -first -second -msg=None -values=True -base=None - -Fails if objects are unequal after converting them to integers. - -See `Convert To Integer` for information how to convert integers from -other bases than 10 using ``base`` argument or ``0b/0o/0x`` prefixes. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``. - -Examples: -| Should Be Equal As Integers | 42 | ${42} | Error message | -| Should Be Equal As Integers | ABCD | abcd | base=16 | -| Should Be Equal As Integers | 0b1011 | 11 | - - - - - -first -second -msg=None -values=True -precision=6 - -Fails if objects are unequal after converting them to real numbers. - -The conversion is done with `Convert To Number` keyword using the -given ``precision``. - -Examples: -| Should Be Equal As Numbers | ${x} | 1.1 | | # Passes if ${x} is 1.1 | -| Should Be Equal As Numbers | 1.123 | 1.1 | precision=1 | # Passes | -| Should Be Equal As Numbers | 1.123 | 1.4 | precision=0 | # Passes | -| Should Be Equal As Numbers | 112.3 | 75 | precision=-2 | # Passes | - -As discussed in the documentation of `Convert To Number`, machines -generally cannot store floating point numbers accurately. Because of -this limitation, comparing floats for equality is problematic and -a correct approach to use depends on the context. This keyword uses -a very naive approach of rounding the numbers before comparing them, -which is both prone to rounding errors and does not work very well if -numbers are really big or small. For more information about comparing -floats, and ideas on how to implement your own context specific -comparison algorithm, see -http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/. - -If you want to avoid possible problems with floating point numbers, -you can implement custom keywords using Python's -[http://docs.python.org/library/decimal.html|decimal] or -[http://docs.python.org/library/fractions.html|fractions] modules. - -See `Should Not Be Equal As Numbers` for a negative version of this -keyword and `Should Be Equal` for an explanation on how to override -the default error message with ``msg`` and ``values``. - - - - - -first -second -msg=None -values=True -ignore_case=False - -Fails if objects are unequal after converting them to strings. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``. - -If ``ignore_case`` is given a true value (see `Boolean arguments`), it -indicates that comparison should be case-insensitive. New option in -Robot Framework 3.0.1. - -If both arguments are multiline strings, the comparison is done using -`multiline string comparisons`. - - - - - -condition -msg=None - -Fails if the given condition is not true. - -If ``condition`` is a string (e.g. ``${rc} < 10``), it is evaluated as -a Python expression as explained in `Evaluating expressions` and the -keyword status is decided based on the result. If a non-string item is -given, the status is got directly from its -[http://docs.python.org/library/stdtypes.html#truth|truth value]. - -The default error message (``<condition> should be true``) is not very -informative, but it can be overridden with the ``msg`` argument. - -Examples: -| Should Be True | ${rc} < 10 | -| Should Be True | '${status}' == 'PASS' | # Strings must be quoted | -| Should Be True | ${number} | # Passes if ${number} is not zero | -| Should Be True | ${list} | # Passes if ${list} is not empty | - -Variables used like ``${variable}``, as in the examples above, are -replaced in the expression before evaluation. Variables are also -available in the evaluation namespace and can be accessed using special -syntax ``$variable``. This is a new feature in Robot Framework 2.9 -and it is explained more thoroughly in `Evaluating expressions`. - -Examples: -| Should Be True | $rc < 10 | -| Should Be True | $status == 'PASS' | # Expected string must be quoted | - -`Should Be True` automatically imports Python's -[http://docs.python.org/library/os.html|os] and -[http://docs.python.org/library/sys.html|sys] modules that contain -several useful attributes: - -| Should Be True | os.linesep == '\n' | # Unixy | -| Should Be True | os.linesep == '\r\n' | # Windows | -| Should Be True | sys.platform == 'darwin' | # OS X | -| Should Be True | sys.platform.startswith('java') | # Jython | - - - - - -container -item -msg=None -values=True -ignore_case=False - -Fails if ``container`` does not contain ``item`` one or more times. - -Works with strings, lists, and anything that supports Python's ``in`` -operator. - -See `Should Be Equal` for an explanation on how to override the default -error message with arguments ``msg`` and ``values``. - -If ``ignore_case`` is given a true value (see `Boolean arguments`) and -compared items are strings, it indicates that comparison should be -case-insensitive. If the ``container`` is a list-like object, string -items in it are compared case-insensitively. New option in Robot -Framework 3.0.1. - -Examples: -| Should Contain | ${output} | PASS | -| Should Contain | ${some list} | value | msg=Failure! | values=False | -| Should Contain | ${some list} | value | ignore_case=True | - - - - - -container -*items -**configuration - -Fails if ``container`` does not contain any of the ``*items``. - -Works with strings, lists, and anything that supports Python's ``in`` -operator. - -Supports additional configuration parameters ``msg``, ``values`` -and ``ignore_case``, which have exactly the same semantics as arguments -with same names have with `Should Contain`. These arguments must -always be given using ``name=value`` syntax after all ``items``. - -Note that possible equal signs in ``items`` must be escaped with -a backslash (e.g. ``foo\=bar``) to avoid them to be passed in -as ``**configuration``. - -Examples: -| Should Contain Any | ${string} | substring 1 | substring 2 | -| Should Contain Any | ${list} | item 1 | item 2 | item 3 | -| Should Contain Any | ${list} | item 1 | item 2 | item 3 | ignore_case=True | -| Should Contain Any | ${list} | @{items} | msg=Custom message | values=False | - -New in Robot Framework 3.0.1. - - - - - -item1 -item2 -count -msg=None -ignore_case=False - -Fails if ``item1`` does not contain ``item2`` ``count`` times. - -Works with strings, lists and all objects that `Get Count` works -with. The default error message can be overridden with ``msg`` and -the actual count is always logged. - -If ``ignore_case`` is given a true value (see `Boolean arguments`) and -compared items are strings, it indicates that comparison should be -case-insensitive. If the ``item1`` is a list-like object, string -items in it are compared case-insensitively. New option in Robot -Framework 3.0.1. - -Examples: -| Should Contain X Times | ${output} | hello | 2 | -| Should Contain X Times | ${some list} | value | 3 | ignore_case=True | - - - - - -str1 -str2 -msg=None -values=True -ignore_case=False - -Fails if the string ``str1`` does not end with the string ``str2``. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``, as well as for semantics -of the ``ignore_case`` option. - - - - - -string -pattern -msg=None -values=True -ignore_case=False - -Fails if the given ``string`` does not match the given ``pattern``. - -Pattern matching is similar as matching files in a shell with -``*``, ``?`` and ``[chars]`` acting as wildcards. See the -`Glob patterns` section for more information. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``, as well as for semantics -of the ``ignore_case`` option. - - - - - -string -pattern -msg=None -values=True - -Fails if ``string`` does not match ``pattern`` as a regular expression. - -See the `Regular expressions` section for more information about -regular expressions and how to use then in Robot Framework test data. - -Notice that the given pattern does not need to match the whole string. -For example, the pattern ``ello`` matches the string ``Hello world!``. -If a full match is needed, the ``^`` and ``$`` characters can be used -to denote the beginning and end of the string, respectively. -For example, ``^ello$`` only matches the exact string ``ello``. - -Possible flags altering how the expression is parsed (e.g. -``re.IGNORECASE``, ``re.MULTILINE``) must be embedded to the -pattern like ``(?im)pattern``. The most useful flags are ``i`` -(case-insensitive), ``m`` (multiline mode), ``s`` (dotall mode) -and ``x`` (verbose). - -If this keyword passes, it returns the portion of the string that -matched the pattern. Additionally, the possible captured groups are -returned. - -See the `Should Be Equal` keyword for an explanation on how to override -the default error message with the ``msg`` and ``values`` arguments. - -Examples: -| Should Match Regexp | ${output} | \\d{6} | # Output contains six numbers | -| Should Match Regexp | ${output} | ^\\d{6}$ | # Six numbers and nothing more | -| ${ret} = | Should Match Regexp | Foo: 42 | (?i)foo: \\d+ | -| ${match} | ${group1} | ${group2} = | -| ... | Should Match Regexp | Bar: 43 | (Foo|Bar): (\\d+) | -=> -| ${ret} = 'Foo: 42' -| ${match} = 'Bar: 43' -| ${group1} = 'Bar' -| ${group2} = '43' - - - - - -item -msg=None - -Verifies that the given item is not empty. - -The length of the item is got using the `Get Length` keyword. The -default error message can be overridden with the ``msg`` argument. - - - - - -first -second -msg=None -values=True -ignore_case=False - -Fails if the given objects are equal. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``. - -If ``ignore_case`` is given a true value (see `Boolean arguments`) and -both arguments are strings, it indicates that comparison should be -case-insensitive. New option in Robot Framework 3.0.1. - - - - - -first -second -msg=None -values=True -base=None - -Fails if objects are equal after converting them to integers. - -See `Convert To Integer` for information how to convert integers from -other bases than 10 using ``base`` argument or ``0b/0o/0x`` prefixes. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``. - -See `Should Be Equal As Integers` for some usage examples. - - - - - -first -second -msg=None -values=True -precision=6 - -Fails if objects are equal after converting them to real numbers. - -The conversion is done with `Convert To Number` keyword using the -given ``precision``. - -See `Should Be Equal As Numbers` for examples on how to use -``precision`` and why it does not always work as expected. See also -`Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``. - - - - - -first -second -msg=None -values=True -ignore_case=False - -Fails if objects are equal after converting them to strings. - -If ``ignore_case`` is given a true value (see `Boolean arguments`), it -indicates that comparison should be case-insensitive. New option in -Robot Framework 3.0.1. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``. - - - - - -condition -msg=None - -Fails if the given condition is true. - -See `Should Be True` for details about how ``condition`` is evaluated -and how ``msg`` can be used to override the default error message. - - - - - -container -item -msg=None -values=True -ignore_case=False - -Fails if ``container`` contains ``item`` one or more times. - -Works with strings, lists, and anything that supports Python's ``in`` -operator. - -See `Should Be Equal` for an explanation on how to override the default -error message with arguments ``msg`` and ``values``. ``ignore_case`` -has exactly the same semantics as with `Should Contain`. - -Examples: -| Should Not Contain | ${some list} | value | -| Should Not Contain | ${output} | FAILED | ignore_case=True | - - - - - -container -*items -**configuration - -Fails if ``container`` contains one or more of the ``*items``. - -Works with strings, lists, and anything that supports Python's ``in`` -operator. - -Supports additional configuration parameters ``msg``, ``values`` -and ``ignore_case``, which have exactly the same semantics as arguments -with same names have with `Should Contain`. These arguments must -always be given using ``name=value`` syntax after all ``items``. - -Note that possible equal signs in ``items`` must be escaped with -a backslash (e.g. ``foo\=bar``) to avoid them to be passed in -as ``**configuration``. - -Examples: -| Should Not Contain Any | ${string} | substring 1 | substring 2 | -| Should Not Contain Any | ${list} | item 1 | item 2 | item 3 | -| Should Not Contain Any | ${list} | item 1 | item 2 | item 3 | ignore_case=True | -| Should Not Contain Any | ${list} | @{items} | msg=Custom message | values=False | - -New in Robot Framework 3.0.1. - - - - - -str1 -str2 -msg=None -values=True -ignore_case=False - -Fails if the string ``str1`` ends with the string ``str2``. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``, as well as for semantics -of the ``ignore_case`` option. - - - - - -string -pattern -msg=None -values=True -ignore_case=False - -Fails if the given ``string`` matches the given ``pattern``. - -Pattern matching is similar as matching files in a shell with -``*``, ``?`` and ``[chars]`` acting as wildcards. See the -`Glob patterns` section for more information. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``, as well as for semantics -of the ``ignore_case`` option. - - - - - -string -pattern -msg=None -values=True - -Fails if ``string`` matches ``pattern`` as a regular expression. - -See `Should Match Regexp` for more information about arguments. - - - - - -str1 -str2 -msg=None -values=True -ignore_case=False - -Fails if the string ``str1`` starts with the string ``str2``. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``, as well as for semantics -of the ``ignore_case`` option. - - - - - -str1 -str2 -msg=None -values=True -ignore_case=False - -Fails if the string ``str1`` does not start with the string ``str2``. - -See `Should Be Equal` for an explanation on how to override the default -error message with ``msg`` and ``values``, as well as for semantics -of the ``ignore_case`` option. - - - - - -time_ -reason=None - -Pauses the test executed for the given time. - -``time`` may be either a number or a time string. Time strings are in -a format such as ``1 day 2 hours 3 minutes 4 seconds 5milliseconds`` or -``1d 2h 3m 4s 5ms``, and they are fully explained in an appendix of -Robot Framework User Guide. Optional `reason` can be used to explain why -sleeping is necessary. Both the time slept and the reason are logged. - -Examples: -| Sleep | 42 | -| Sleep | 1.5 | -| Sleep | 2 minutes 10 seconds | -| Sleep | 10s | Wait for a reply | - - - - - -name -msg=None - -Fails unless the given variable exists within the current scope. - -The name of the variable can be given either as a normal variable name -(e.g. ``${NAME}``) or in escaped format (e.g. ``\${NAME}``). Notice -that the former has some limitations explained in `Set Suite Variable`. - -The default error message can be overridden with the ``msg`` argument. - -See also `Variable Should Not Exist` and `Keyword Should Exist`. - - - - - -name -msg=None - -Fails if the given variable exists within the current scope. - -The name of the variable can be given either as a normal variable name -(e.g. ``${NAME}``) or in escaped format (e.g. ``\${NAME}``). Notice -that the former has some limitations explained in `Set Suite Variable`. - -The default error message can be overridden with the ``msg`` argument. - -See also `Variable Should Exist` and `Keyword Should Exist`. - - - - - -retry -retry_interval -name -*args - -Runs the specified keyword and retries if it fails. - -``name`` and ``args`` define the keyword that is executed similarly -as with `Run Keyword`. How long to retry running the keyword is -defined using ``retry`` argument either as timeout or count. -``retry_interval`` is the time to wait before trying to run the -keyword again after the previous run has failed. - -If ``retry`` is given as timeout, it must be in Robot Framework's -time format (e.g. ``1 minute``, ``2 min 3 s``, ``4.5``) that is -explained in an appendix of Robot Framework User Guide. If it is -given as count, it must have ``times`` or ``x`` postfix (e.g. -``5 times``, ``10 x``). ``retry_interval`` must always be given in -Robot Framework's time format. - -If the keyword does not succeed regardless of retries, this keyword -fails. If the executed keyword passes, its return value is returned. - -Examples: -| Wait Until Keyword Succeeds | 2 min | 5 sec | My keyword | argument | -| ${result} = | Wait Until Keyword Succeeds | 3x | 200ms | My keyword | - -All normal failures are caught by this keyword. Errors caused by -invalid syntax, test or keyword timeouts, or fatal exceptions (caused -e.g. by `Fatal Error`) are not caught. - -Running the same keyword multiple times inside this keyword can create -lots of output and considerably increase the size of the generated -output files. It is possible to remove unnecessary keywords from -the outputs using ``--RemoveKeywords WUKS`` command line option. - -Support for specifying ``retry`` as a number of times to retry is -a new feature in Robot Framework 2.9. -Since Robot Framework 2.9, variable errors are caught by this keyword. - - - - diff --git a/libspecs/Collections.libspec b/libspecs/Collections.libspec deleted file mode 100644 index 75feb0881..000000000 --- a/libspecs/Collections.libspec +++ /dev/null @@ -1,880 +0,0 @@ - - -3.1 -global -yes -A test library providing keywords for handling lists and dictionaries. - -``Collections`` is Robot Framework's standard library that provides a -set of keywords for handling Python lists and dictionaries. This -library has keywords, for example, for modifying and getting -values from lists and dictionaries (e.g. `Append To List`, `Get -From Dictionary`) and for verifying their contents (e.g. `Lists -Should Be Equal`, `Dictionary Should Contain Value`). - -= Related keywords in BuiltIn = - -Following keywords in the BuiltIn library can also be used with -lists and dictionaries: - -| = Keyword Name = | = Applicable With = | = Comment = | -| `Create List` | lists | -| `Create Dictionary` | dicts | Was in Collections until RF 2.9. | -| `Get Length` | both | -| `Length Should Be` | both | -| `Should Be Empty` | both | -| `Should Not Be Empty` | both | -| `Should Contain` | both | -| `Should Not Contain` | both | -| `Should Contain X Times` | lists | -| `Should Not Contain X Times` | lists | -| `Get Count` | lists | - -= Using with list-like and dictionary-like objects = - -List keywords that do not alter the given list can also be used -with tuples, and to some extend also with other iterables. -`Convert To List` can be used to convert tuples and other iterables -to Python ``list`` objects. - -Similarly dictionary keywords can, for most parts, be used with other -mappings. `Convert To Dictionary` can be used if real Python ``dict`` -objects are needed. - -= Boolean arguments = - -Some keywords accept arguments that are handled as Boolean values true or -false. If such an argument is given as a string, it is considered false if -it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or -``0``, case-insensitively. Keywords verifying something that allow dropping -actual and expected values from the possible error message also consider -string ``no values`` to be false. Other strings are considered true -regardless their value, and other argument types are tested using the same -[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. - -True examples: -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=True | # Strings are generally true. | -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=yes | # Same as the above. | -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${TRUE} | # Python ``True`` is true. | -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${42} | # Numbers other than 0 are true. | - -False examples: -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=False | # String ``false`` is false. | -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=no | # Also string ``no`` is false. | -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${EMPTY} | # Empty string is false. | -| `Should Contain Match` | ${list} | ${pattern} | case_insensitive=${FALSE} | # Python ``False`` is false. | -| `Lists Should Be Equal` | ${x} | ${y} | Custom error | values=no values | # ``no values`` works with ``values`` argument | - -Considering string ``NONE`` false is new in Robot Framework 3.0.3 and -considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. - -= Data in examples = - -List related keywords use variables in format ``${Lx}`` in their examples. -They mean lists with as many alphabetic characters as specified by ``x``. -For example, ``${L1}`` means ``['a']`` and ``${L3}`` means -``['a', 'b', 'c']``. - -Dictionary keywords use similar ``${Dx}`` variables. For example, ``${D1}`` -means ``{'a': 1}`` and ``${D3}`` means ``{'a': 1, 'b': 2, 'c': 3}``. - - -list_ -*values - -Adds ``values`` to the end of ``list``. - -Example: -| Append To List | ${L1} | xxx | | | -| Append To List | ${L2} | x | y | z | -=> -| ${L1} = ['a', 'xxx'] -| ${L2} = ['a', 'b', 'x', 'y', 'z'] - - - - - -*lists - -Combines the given ``lists`` together and returns the result. - -The given lists are not altered by this keyword. - -Example: -| ${x} = | Combine List | ${L1} | ${L2} | | -| ${y} = | Combine List | ${L1} | ${L2} | ${L1} | -=> -| ${x} = ['a', 'a', 'b'] -| ${y} = ['a', 'a', 'b', 'a'] -| ${L1} and ${L2} are not changed. - - - - - -item - -Converts the given ``item`` to a Python ``dict`` type. - -Mainly useful for converting other mappings to dictionaries. Use -`Create Dictionary` from the BuiltIn library for constructing new -dictionaries. - -New in Robot Framework 2.9. - - - - - -item - -Converts the given ``item`` to a Python ``list`` type. - -Mainly useful for converting tuples and other iterable to lists. -Use `Create List` from the BuiltIn library for constructing new lists. - - - - - -dictionary - -Returns a copy of the given dictionary. - -The given dictionary is never altered by this keyword. - - - - - -list_ - -Returns a copy of the given list. - -The given list is never altered by this keyword. - - - - - -list_ -value -start=0 -end=None - -Returns the number of occurrences of the given ``value`` in ``list``. - -The search can be narrowed to the selected sublist by the ``start`` and -``end`` indexes having the same semantics as with `Get Slice From List` -keyword. The given list is never altered by this keyword. - -Example: -| ${x} = | Count Values In List | ${L3} | b | -=> -| ${x} = 1 -| ${L3} is not changed - - - - - -dict1 -dict2 -msg=None -values=True - -Fails if the given dictionaries are not equal. - -First the equality of dictionaries' keys is checked and after that all -the key value pairs. If there are differences between the values, those -are listed in the error message. The types of the dictionaries do not -need to be same. - -See `Lists Should Be Equal` for more information about configuring -the error message with ``msg`` and ``values`` arguments. - -The given dictionaries are never altered by this keyword. - - - - - -dictionary -key -value -msg=None - -An item of ``key`` / ``value`` must be found in a ``dictionary``. - -Value is converted to unicode for comparison. - -See `Lists Should Be Equal` for an explanation of ``msg``. -The given dictionary is never altered by this keyword. - - - - - -dictionary -key -msg=None - -Fails if ``key`` is not found from ``dictionary``. - -See `List Should Contain Value` for an explanation of ``msg``. - -The given dictionary is never altered by this keyword. - - - - - -dict1 -dict2 -msg=None -values=True - -Fails unless all items in ``dict2`` are found from ``dict1``. - -See `Lists Should Be Equal` for more information about configuring -the error message with ``msg`` and ``values`` arguments. - -The given dictionaries are never altered by this keyword. - - - - - -dictionary -value -msg=None - -Fails if ``value`` is not found from ``dictionary``. - -See `List Should Contain Value` for an explanation of ``msg``. - -The given dictionary is never altered by this keyword. - - - - - -dictionary -key -msg=None - -Fails if ``key`` is found from ``dictionary``. - -See `List Should Contain Value` for an explanation of ``msg``. - -The given dictionary is never altered by this keyword. - - - - - -dictionary -value -msg=None - -Fails if ``value`` is found from ``dictionary``. - -See `List Should Contain Value` for an explanation of ``msg``. - -The given dictionary is never altered by this keyword. - - - - - -dictionary - -Returns items of the given ``dictionary``. - -Items are returned sorted by keys. The given ``dictionary`` is not -altered by this keyword. - -Example: -| ${items} = | Get Dictionary Items | ${D3} | -=> -| ${items} = ['a', 1, 'b', 2, 'c', 3] - - - - - -dictionary - -Returns keys of the given ``dictionary``. - -If keys are sortable, they are returned in sorted order. The given -``dictionary`` is never altered by this keyword. - -Example: -| ${keys} = | Get Dictionary Keys | ${D3} | -=> -| ${keys} = ['a', 'b', 'c'] - - - - - -dictionary - -Returns values of the given dictionary. - -Values are returned sorted according to keys. The given dictionary is -never altered by this keyword. - -Example: -| ${values} = | Get Dictionary Values | ${D3} | -=> -| ${values} = [1, 2, 3] - - - - - -dictionary -key - -Returns a value from the given ``dictionary`` based on the given ``key``. - -If the given ``key`` cannot be found from the ``dictionary``, this -keyword fails. - -The given dictionary is never altered by this keyword. - -Example: -| ${value} = | Get From Dictionary | ${D3} | b | -=> -| ${value} = 2 - - - - - -list_ -index - -Returns the value specified with an ``index`` from ``list``. - -The given list is never altered by this keyword. - -Index ``0`` means the first position, ``1`` the second, and so on. -Similarly, ``-1`` is the last position, ``-2`` the second last, and so on. -Using an index that does not exist on the list causes an error. -The index can be either an integer or a string that can be converted -to an integer. - -Examples (including Python equivalents in comments): -| ${x} = | Get From List | ${L5} | 0 | # L5[0] | -| ${y} = | Get From List | ${L5} | -2 | # L5[-2] | -=> -| ${x} = 'a' -| ${y} = 'd' -| ${L5} is not changed - - - - - -list_ -value -start=0 -end=None - -Returns the index of the first occurrence of the ``value`` on the list. - -The search can be narrowed to the selected sublist by the ``start`` and -``end`` indexes having the same semantics as with `Get Slice From List` -keyword. In case the value is not found, -1 is returned. The given list -is never altered by this keyword. - -Example: -| ${x} = | Get Index From List | ${L5} | d | -=> -| ${x} = 3 -| ${L5} is not changed - - - - - -list -pattern -case_insensitive=False -whitespace_insensitive=False - -Returns the count of matches to ``pattern`` in ``list``. - -For more information on ``pattern``, ``case_insensitive``, and -``whitespace_insensitive``, see `Should Contain Match`. - -Examples: -| ${count}= | Get Match Count | ${list} | a* | # ${count} will be the count of strings beginning with 'a' | -| ${count}= | Get Match Count | ${list} | regexp=a.* | # ${matches} will be the count of strings beginning with 'a' (regexp version) | -| ${count}= | Get Match Count | ${list} | a* | case_insensitive=${True} | # ${matches} will be the count of strings beginning with 'a' or 'A' | - - - - - -list -pattern -case_insensitive=False -whitespace_insensitive=False - -Returns a list of matches to ``pattern`` in ``list``. - -For more information on ``pattern``, ``case_insensitive``, and -``whitespace_insensitive``, see `Should Contain Match`. - -Examples: -| ${matches}= | Get Matches | ${list} | a* | # ${matches} will contain any string beginning with 'a' | -| ${matches}= | Get Matches | ${list} | regexp=a.* | # ${matches} will contain any string beginning with 'a' (regexp version) | -| ${matches}= | Get Matches | ${list} | a* | case_insensitive=${True} | # ${matches} will contain any string beginning with 'a' or 'A' | - - - - - -list_ -start=0 -end=None - -Returns a slice of the given list between ``start`` and ``end`` indexes. - -The given list is never altered by this keyword. - -If both ``start`` and ``end`` are given, a sublist containing values -from ``start`` to ``end`` is returned. This is the same as -``list[start:end]`` in Python. To get all items from the beginning, -use 0 as the start value, and to get all items until and including -the end, use ``None`` (default) as the end value. - -Using ``start`` or ``end`` not found on the list is the same as using -the largest (or smallest) available index. - -Examples (incl. Python equivalents in comments): -| ${x} = | Get Slice From List | ${L5} | 2 | 4 | # L5[2:4] | -| ${y} = | Get Slice From List | ${L5} | 1 | | # L5[1:None] | -| ${z} = | Get Slice From List | ${L5} | | -2 | # L5[0:-2] | -=> -| ${x} = ['c', 'd'] -| ${y} = ['b', 'c', 'd', 'e'] -| ${z} = ['a', 'b', 'c'] -| ${L5} is not changed - - - - - -list_ -index -value - -Inserts ``value`` into ``list`` to the position specified with ``index``. - -Index ``0`` adds the value into the first position, ``1`` to the second, -and so on. Inserting from right works with negative indices so that -``-1`` is the second last position, ``-2`` third last, and so on. Use -`Append To List` to add items to the end of the list. - -If the absolute value of the index is greater than -the length of the list, the value is added at the end -(positive index) or the beginning (negative index). An index -can be given either as an integer or a string that can be -converted to an integer. - -Example: -| Insert Into List | ${L1} | 0 | xxx | -| Insert Into List | ${L2} | ${-1} | xxx | -=> -| ${L1} = ['xxx', 'a'] -| ${L2} = ['a', 'xxx', 'b'] - - - - - -dictionary -*keys - -Keeps the given ``keys`` in the ``dictionary`` and removes all other. - -If the given ``key`` cannot be found from the ``dictionary``, it -is ignored. - -Example: -| Keep In Dictionary | ${D5} | b | x | d | -=> -| ${D5} = {'b': 2, 'd': 4} - - - - - -list1 -list2 -msg=None -values=True - -Fails if not all of the elements in ``list2`` are found in ``list1``. - -The order of values and the number of values are not taken into -account. - -See `Lists Should Be Equal` for more information about configuring -the error message with ``msg`` and ``values`` arguments. - - - - - -list_ -value -msg=None - -Fails if the ``value`` is not found from ``list``. - -If the keyword fails, the default error messages is ``<list> does -not contain value '<value>'``. A custom message can be given using -the ``msg`` argument. - - - - - -list_ -msg=None - -Fails if any element in the ``list`` is found from it more than once. - -The default error message lists all the elements that were found -from the ``list`` multiple times, but it can be overridden by giving -a custom ``msg``. All multiple times found items and their counts are -also logged. - -This keyword works with all iterables that can be converted to a list. -The original iterable is never altered. - - - - - -list_ -value -msg=None - -Fails if the ``value`` is found from ``list``. - -See `List Should Contain Value` for an explanation of ``msg``. - - - - - -list1 -list2 -msg=None -values=True -names=None - -Fails if given lists are unequal. - -The keyword first verifies that the lists have equal lengths, and then -it checks are all their values equal. Possible differences between the -values are listed in the default error message like ``Index 4: ABC != -Abc``. The types of the lists do not need to be the same. For example, -Python tuple and list with same content are considered equal. - - -The error message can be configured using ``msg`` and ``values`` -arguments: -- If ``msg`` is not given, the default error message is used. -- If ``msg`` is given and ``values`` gets a value considered true - (see `Boolean arguments`), the error message starts with the given - ``msg`` followed by a newline and the default message. -- If ``msg`` is given and ``values`` is not given a true value, - the error message is just the given ``msg``. - -Optional ``names`` argument can be used for naming the indices shown in -the default error message. It can either be a list of names matching -the indices in the lists or a dictionary where keys are indices that -need to be named. It is not necessary to name all of the indices. When -using a dictionary, keys can be either integers or strings that can be -converted to integers. - -Examples: -| ${names} = | Create List | First Name | Family Name | Email | -| Lists Should Be Equal | ${people1} | ${people2} | names=${names} | -| ${names} = | Create Dictionary | 0=First Name | 2=Email | -| Lists Should Be Equal | ${people1} | ${people2} | names=${names} | - -If the items in index 2 would differ in the above examples, the error -message would contain a row like ``Index 2 (email): name@foo.com != -name@bar.com``. - - - - - -dictionary -level=INFO - -Logs the size and contents of the ``dictionary`` using given ``level``. - -Valid levels are TRACE, DEBUG, INFO (default), and WARN. - -If you only want to log the size, use keyword `Get Length` from -the BuiltIn library. - - - - - -list_ -level=INFO - -Logs the length and contents of the ``list`` using given ``level``. - -Valid levels are TRACE, DEBUG, INFO (default), and WARN. - -If you only want to the length, use keyword `Get Length` from -the BuiltIn library. - - - - - -dictionary -key -default= - -Pops the given ``key`` from the ``dictionary`` and returns its value. - -By default the keyword fails if the given ``key`` cannot be found from -the ``dictionary``. If optional ``default`` value is given, it will be -returned instead of failing. - -Example: -| ${val}= | Pop From Dictionary | ${D3} | b | -=> -| ${val} = 2 -| ${D3} = {'a': 1, 'c': 3} - -New in Robot Framework 2.9.2. - - - - - -list_ - -Returns a list without duplicates based on the given ``list``. - -Creates and returns a new list that contains all items in the given -list so that one item can appear only once. Order of the items in -the new list is the same as in the original except for missing -duplicates. Number of the removed duplicates is logged. - - - - - -dictionary -*keys - -Removes the given ``keys`` from the ``dictionary``. - -If the given ``key`` cannot be found from the ``dictionary``, it -is ignored. - -Example: -| Remove From Dictionary | ${D3} | b | x | y | -=> -| ${D3} = {'a': 1, 'c': 3} - - - - - -list_ -index - -Removes and returns the value specified with an ``index`` from ``list``. - -Index ``0`` means the first position, ``1`` the second and so on. -Similarly, ``-1`` is the last position, ``-2`` the second last, and so on. -Using an index that does not exist on the list causes an error. -The index can be either an integer or a string that can be converted -to an integer. - -Example: -| ${x} = | Remove From List | ${L2} | 0 | -=> -| ${x} = 'a' -| ${L2} = ['b'] - - - - - -list_ -*values - -Removes all occurrences of given ``values`` from ``list``. - -It is not an error if a value does not exist in the list at all. - -Example: -| Remove Values From List | ${L4} | a | c | e | f | -=> -| ${L4} = ['b', 'd'] - - - - - -list_ - -Reverses the given list in place. - -Note that the given list is changed and nothing is returned. Use -`Copy List` first, if you need to keep also the original order. - -| Reverse List | ${L3} | -=> -| ${L3} = ['c', 'b', 'a'] - - - - - -list_ -index -value - -Sets the value of ``list`` specified by ``index`` to the given ``value``. - -Index ``0`` means the first position, ``1`` the second and so on. -Similarly, ``-1`` is the last position, ``-2`` second last, and so on. -Using an index that does not exist on the list causes an error. -The index can be either an integer or a string that can be converted to -an integer. - -Example: -| Set List Value | ${L3} | 1 | xxx | -| Set List Value | ${L3} | -1 | yyy | -=> -| ${L3} = ['a', 'xxx', 'yyy'] - - - - - -dictionary -*key_value_pairs -**items - -Adds the given ``key_value_pairs`` and ``items`` to the ``dictionary``. - -Giving items as ``key_value_pairs`` means giving keys and values -as separate arguments: - -| Set To Dictionary | ${D1} | key | value | second | ${2} | -=> -| ${D1} = {'a': 1, 'key': 'value', 'second': 2} - -| Set To Dictionary | ${D1} | key=value | second=${2} | - -The latter syntax is typically more convenient to use, but it has -a limitation that keys must be strings. - -If given keys already exist in the dictionary, their values are updated. - - - - - -list -pattern -msg=None -case_insensitive=False -whitespace_insensitive=False - -Fails if ``pattern`` is not found in ``list``. - -See `List Should Contain Value` for an explanation of ``msg``. - -By default, pattern matching is similar to matching files in a shell -and is case-sensitive and whitespace-sensitive. In the pattern syntax, -``*`` matches to anything and ``?`` matches to any single character. You -can also prepend ``glob=`` to your pattern to explicitly use this pattern -matching behavior. - -If you prepend ``regexp=`` to your pattern, your pattern will be used -according to the Python -[http://docs.python.org/library/re.html|re module] regular expression -syntax. Important note: Backslashes are an escape character, and must -be escaped with another backslash (e.g. ``regexp=\\d{6}`` to search for -``\d{6}``). See `BuiltIn.Should Match Regexp` for more details. - -If ``case_insensitive`` is given a true value (see `Boolean arguments`), -the pattern matching will ignore case. - -If ``whitespace_insensitive`` is given a true value (see `Boolean -arguments`), the pattern matching will ignore whitespace. - -Non-string values in lists are ignored when matching patterns. - -The given list is never altered by this keyword. - -See also ``Should Not Contain Match``. - -Examples: -| Should Contain Match | ${list} | a* | | | # Match strings beginning with 'a'. | -| Should Contain Match | ${list} | regexp=a.* | | | # Same as the above but with regexp. | -| Should Contain Match | ${list} | regexp=\\d{6} | | | # Match strings containing six digits. | -| Should Contain Match | ${list} | a* | case_insensitive=True | | # Match strings beginning with 'a' or 'A'. | -| Should Contain Match | ${list} | ab* | whitespace_insensitive=yes | | # Match strings beginning with 'ab' with possible whitespace ignored. | -| Should Contain Match | ${list} | ab* | whitespace_insensitive=true | case_insensitive=true | # Same as the above but also ignore case. | - - - - - -list -pattern -msg=None -case_insensitive=False -whitespace_insensitive=False - -Fails if ``pattern`` is found in ``list``. - -Exact opposite of `Should Contain Match` keyword. See that keyword -for information about arguments and usage in general. - - - - - -list_ - -Sorts the given list in place. - -The strings are sorted alphabetically and the numbers numerically. - -Note that the given list is changed and nothing is returned. Use -`Copy List` first, if you need to keep also the original order. - -${L} = [2,1,'a','c','b'] -| Sort List | ${L} | -=> -| ${L} = [1, 2, 'a', 'b', 'c'] - - - - diff --git a/libspecs/DateTime.libspec b/libspecs/DateTime.libspec deleted file mode 100644 index 538dd5912..000000000 --- a/libspecs/DateTime.libspec +++ /dev/null @@ -1,512 +0,0 @@ - - -3.1 -global -yes -A test library for handling date and time values. - -``DateTime`` is a Robot Framework standard library that supports creating and -converting date and time values (e.g. `Get Current Date`, `Convert Time`), -as well as doing simple calculations with them (e.g. `Subtract Time From Date`, -`Add Time To Time`). It supports dates and times in various formats, and can -also be used by other libraries programmatically. - -= Table of Contents = - -- `Terminology` -- `Date formats` -- `Time formats` -- `Millisecond handling` -- `Programmatic usage` -- `Shortcuts` -- `Keywords` - -= Terminology = - -In the context of this library, ``date`` and ``time`` generally have following -meanings: - -- ``date``: An entity with both date and time components but without any - timezone information. For example, ``2014-06-11 10:07:42``. -- ``time``: A time interval. For example, ``1 hour 20 minutes`` or ``01:20:00``. - -This terminology differs from what Python's standard -[http://docs.python.org/library/datetime.html|datetime] module uses. -Basically its -[http://docs.python.org/library/datetime.html#datetime-objects|datetime] and -[http://docs.python.org/library/datetime.html#timedelta-objects|timedelta] -objects match ``date`` and ``time`` as defined by this library. - -= Date formats = - -Dates can given to and received from keywords in `timestamp`, `custom -timestamp`, `Python datetime` and `epoch time` formats. These formats are -discussed thoroughly in subsequent sections. - -Input format is determined automatically based on the given date except when -using custom timestamps, in which case it needs to be given using -``date_format`` argument. Default result format is timestamp, but it can -be overridden using ``result_format`` argument. - -== Timestamp == - -If a date is given as a string, it is always considered to be a timestamp. -If no custom formatting is given using ``date_format`` argument, the timestamp -is expected to be in [http://en.wikipedia.org/wiki/ISO_8601|ISO 8601] like -format ``YYYY-MM-DD hh:mm:ss.mil``, where any non-digit character can be used -as a separator or separators can be omitted altogether. Additionally, -only the date part is mandatory, all possibly missing time components are -considered to be zeros. - -Dates can also be returned in the same ``YYYY-MM-DD hh:mm:ss.mil`` format by -using ``timestamp`` value with ``result_format`` argument. This is also the -default format that keywords returning dates use. Milliseconds can be excluded -using ``exclude_millis`` as explained in `Millisecond handling` section. - -Examples: -| ${date1} = | Convert Date | 2014-06-11 10:07:42.000 | -| ${date2} = | Convert Date | 20140611 100742 | result_format=timestamp | -| Should Be Equal | ${date1} | ${date2} | -| ${date} = | Convert Date | 20140612 12:57 | exclude_millis=yes | -| Should Be Equal | ${date} | 2014-06-12 12:57:00 | - -== Custom timestamp == - -It is possible to use custom timestamps in both input and output. -The custom format is same as accepted by Python's -[http://docs.python.org/library/datetime.html#strftime-strptime-behavior| -datatime.strptime] function. For example, the default timestamp discussed -in the previous section would match ``%Y-%m-%d %H:%M:%S.%f``. - -When using a custom timestamp in input, it must be specified using -``date_format`` argument. The actual input value must be a string that matches -the specified format exactly. When using a custom timestamp in output, it must -be given using ``result_format`` argument. - -Examples: -| ${date} = | Convert Date | 28.05.2014 12:05 | date_format=%d.%m.%Y %H:%M | -| Should Be Equal | ${date} | 2014-05-28 12:05:00.000 | -| ${date} = | Convert Date | ${date} | result_format=%d.%m.%Y | -| Should Be Equal | ${date} | 28.05.2014 | - -Notice that locale aware directives like ``%b`` do not work correctly with -Jython on non-English locales: http://bugs.jython.org/issue2285 - -== Python datetime == - -Python's standard -[http://docs.python.org/library/datetime.html#datetime-objects|datetime] -objects can be used both in input and output. In input they are recognized -automatically, and in output it is possible to get them by giving ``datetime`` -value to ``result_format`` argument. - -One nice benefit with datetime objects is that they have different time -components available as attributes that can be easily accessed using the -extended variable syntax. - -Examples: -| ${datetime} = | Convert Date | 2014-06-11 10:07:42.123 | datetime | -| Should Be Equal As Integers | ${datetime.year} | 2014 | -| Should Be Equal As Integers | ${datetime.month} | 6 | -| Should Be Equal As Integers | ${datetime.day} | 11 | -| Should Be Equal As Integers | ${datetime.hour} | 10 | -| Should Be Equal As Integers | ${datetime.minute} | 7 | -| Should Be Equal As Integers | ${datetime.second} | 42 | -| Should Be Equal As Integers | ${datetime.microsecond} | 123000 | - -== Epoch time == - -Epoch time is the time in seconds since the -[http://en.wikipedia.org/wiki/Unix_time|UNIX epoch] i.e. 00:00:00.000 (UTC) -1 January 1970. To give a date in epoch time, it must be given as a number -(integer or float), not as a string. To return a date in epoch time, -it is possible to use ``epoch`` value with ``result_format`` argument. -Epoch time is returned as a floating point number. - -Notice that epoch time itself is independent on timezones and thus same -around the world at a certain time. What local time a certain epoch time -matches obviously then depends on the timezone. For example, examples below -were tested in Finland but verifications would fail on other timezones. - -Examples: -| ${date} = | Convert Date | ${1000000000} | -| Should Be Equal | ${date} | 2001-09-09 04:46:40.000 | -| ${date} = | Convert Date | 2014-06-12 13:27:59.279 | epoch | -| Should Be Equal | ${date} | ${1402568879.279} | - -== Earliest supported date == - -The earliest date that is supported depends on the date format and to some -extend on the platform: - -- Timestamps support year 1900 and above. -- Python datetime objects support year 1 and above. -- Epoch time supports 1970 and above on Windows with Python and IronPython. -- On other platforms epoch time supports 1900 and above or even earlier. - -Prior to Robot Framework 2.9.2, all formats had same limitation as epoch time -has nowadays. - -= Time formats = - -Similarly as dates, times can be given to and received from keywords in -various different formats. Supported formats are `number`, `time string` -(verbose and compact), `timer string` and `Python timedelta`. - -Input format for time is always determined automatically based on the input. -Result format is number by default, but it can be customised using -``result_format`` argument. - -== Number == - -Time given as a number is interpreted to be seconds. It can be given -either as an integer or a float, or it can be a string that can be converted -to a number. - -To return a time as a number, ``result_format`` argument must have value -``number``, which is also the default. Returned number is always a float. - -Examples: -| ${time} = | Convert Time | 3.14 | -| Should Be Equal | ${time} | ${3.14} | -| ${time} = | Convert Time | ${time} | result_format=number | -| Should Be Equal | ${time} | ${3.14} | - -== Time string == - -Time strings are strings in format like ``1 minute 42 seconds`` or ``1min 42s``. -The basic idea of this format is having first a number and then a text -specifying what time that number represents. Numbers can be either -integers or floating point numbers, the whole format is case and space -insensitive, and it is possible to add a minus prefix to specify negative -times. The available time specifiers are: - -- ``days``, ``day``, ``d`` -- ``hours``, ``hour``, ``h`` -- ``minutes``, ``minute``, ``mins``, ``min``, ``m`` -- ``seconds``, ``second``, ``secs``, ``sec``, ``s`` -- ``milliseconds``, ``millisecond``, ``millis``, ``ms`` - -When returning a time string, it is possible to select between ``verbose`` -and ``compact`` representations using ``result_format`` argument. The verbose -format uses long specifiers ``day``, ``hour``, ``minute``, ``second`` and -``millisecond``, and adds ``s`` at the end when needed. The compact format uses -shorter specifiers ``d``, ``h``, ``min``, ``s`` and ``ms``, and even drops -the space between the number and the specifier. - -Examples: -| ${time} = | Convert Time | 1 minute 42 seconds | -| Should Be Equal | ${time} | ${102} | -| ${time} = | Convert Time | 4200 | verbose | -| Should Be Equal | ${time} | 1 hour 10 minutes | -| ${time} = | Convert Time | - 1.5 hours | compact | -| Should Be Equal | ${time} | - 1h 30min | - -== Timer string == - -Timer string is a string given in timer like format ``hh:mm:ss.mil``. In this -format both hour and millisecond parts are optional, leading and trailing -zeros can be left out when they are not meaningful, and negative times can -be represented by adding a minus prefix. - -To return a time as timer string, ``result_format`` argument must be given -value ``timer``. Timer strings are by default returned in full ``hh:mm:ss.mil`` -format, but milliseconds can be excluded using ``exclude_millis`` as explained -in `Millisecond handling` section. - -Examples: -| ${time} = | Convert Time | 01:42 | -| Should Be Equal | ${time} | ${102} | -| ${time} = | Convert Time | 01:10:00.123 | -| Should Be Equal | ${time} | ${4200.123} | -| ${time} = | Convert Time | 102 | timer | -| Should Be Equal | ${time} | 00:01:42.000 | -| ${time} = | Convert Time | -101.567 | timer | exclude_millis=yes | -| Should Be Equal | ${time} | -00:01:42 | - -== Python timedelta == - -Python's standard -[http://docs.python.org/library/datetime.html#datetime.timedelta|timedelta] -objects are also supported both in input and in output. In input they are -recognized automatically, and in output it is possible to receive them by -giving ``timedelta`` value to ``result_format`` argument. - -Examples: -| ${timedelta} = | Convert Time | 01:10:02.123 | timedelta | -| Should Be Equal | ${timedelta.total_seconds()} | ${4202.123} | - -= Millisecond handling = - -This library handles dates and times internally using the precision of the -given input. With `timestamp`, `time string`, and `timer string` result -formats seconds are, however, rounded to millisecond accuracy. Milliseconds -may also be included even if there would be none. - -All keywords returning dates or times have an option to leave milliseconds out -by giving a true value to ``exclude_millis`` argument. If the argument is given -as a string, it is considered true unless it is empty or case-insensitively -equal to ``false``, ``none`` or ``no``. Other argument types are tested using -same [http://docs.python.org/library/stdtypes.html#truth|rules as in -Python]. Notice that prior to Robot Framework 2.9, all strings except -the empty string were considered true, and that considering ``none`` false is -new in Robot Framework 3.0.3. - -When milliseconds are excluded, seconds in returned dates and times are -rounded to the nearest full second. With `timestamp` and `timer string` -result formats, milliseconds will also be removed from the returned string -altogether. - -Examples: -| ${date} = | Convert Date | 2014-06-11 10:07:42 | -| Should Be Equal | ${date} | 2014-06-11 10:07:42.000 | -| ${date} = | Convert Date | 2014-06-11 10:07:42.500 | exclude_millis=yes | -| Should Be Equal | ${date} | 2014-06-11 10:07:43 | -| ${dt} = | Convert Date | 2014-06-11 10:07:42.500 | datetime | exclude_millis=yes | -| Should Be Equal | ${dt.second} | ${43} | -| Should Be Equal | ${dt.microsecond} | ${0} | -| ${time} = | Convert Time | 102 | timer | exclude_millis=false | -| Should Be Equal | ${time} | 00:01:42.000 | | -| ${time} = | Convert Time | 102.567 | timer | exclude_millis=true | -| Should Be Equal | ${time} | 00:01:43 | | - -= Programmatic usage = - -In addition to be used as normal library, this library is intended to -provide a stable API for other libraries to use if they want to support -same date and time formats as this library. All the provided keywords -are available as functions that can be easily imported: - -| from robot.libraries.DateTime import convert_time -| -| def example_keyword(timeout): -| seconds = convert_time(timeout) -| # ... - -Additionally helper classes ``Date`` and ``Time`` can be used directly: - -| from robot.libraries.DateTime import Date, Time -| -| def example_keyword(date, interval): -| date = Date(date).convert('datetime') -| interval = Time(interval).convert('number') -| # ... - - -date -time -result_format=timestamp -exclude_millis=False -date_format=None - -Adds time to date and returns the resulting date. - -Arguments: -- ``date:`` Date to add time to in one of the supported - `date formats`. -- ``time:`` Time that is added in one of the supported - `time formats`. -- ``result_format:`` Format of the returned date. -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. -- ``date_format:`` Possible `custom timestamp` format of ``date``. - -Examples: -| ${date} = | Add Time To Date | 2014-05-28 12:05:03.111 | 7 days | -| Should Be Equal | ${date} | 2014-06-04 12:05:03.111 | | -| ${date} = | Add Time To Date | 2014-05-28 12:05:03.111 | 01:02:03:004 | -| Should Be Equal | ${date} | 2014-05-28 13:07:06.115 | - - - - - -time1 -time2 -result_format=number -exclude_millis=False - -Adds time to another time and returns the resulting time. - -Arguments: -- ``time1:`` First time in one of the supported `time formats`. -- ``time2:`` Second time in one of the supported `time formats`. -- ``result_format:`` Format of the returned time. -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. - -Examples: -| ${time} = | Add Time To Time | 1 minute | 42 | -| Should Be Equal | ${time} | ${102} | -| ${time} = | Add Time To Time | 3 hours 5 minutes | 01:02:03 | timer | exclude_millis=yes | -| Should Be Equal | ${time} | 04:07:03 | - - - - - -date -result_format=timestamp -exclude_millis=False -date_format=None - -Converts between supported `date formats`. - -Arguments: -- ``date:`` Date in one of the supported `date formats`. -- ``result_format:`` Format of the returned date. -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. -- ``date_format:`` Specifies possible `custom timestamp` format. - -Examples: -| ${date} = | Convert Date | 20140528 12:05:03.111 | -| Should Be Equal | ${date} | 2014-05-28 12:05:03.111 | -| ${date} = | Convert Date | ${date} | epoch | -| Should Be Equal | ${date} | ${1401267903.111} | -| ${date} = | Convert Date | 5.28.2014 12:05 | exclude_millis=yes | date_format=%m.%d.%Y %H:%M | -| Should Be Equal | ${date} | 2014-05-28 12:05:00 | - - - - - -time -result_format=number -exclude_millis=False - -Converts between supported `time formats`. - -Arguments: -- ``time:`` Time in one of the supported `time formats`. -- ``result_format:`` Format of the returned time. -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. - -Examples: -| ${time} = | Convert Time | 10 seconds | -| Should Be Equal | ${time} | ${10} | -| ${time} = | Convert Time | 1:00:01 | verbose | -| Should Be Equal | ${time} | 1 hour 1 second | -| ${time} = | Convert Time | ${3661.5} | timer | exclude_milles=yes | -| Should Be Equal | ${time} | 01:01:02 | - - - - - -time_zone=local -increment=0 -result_format=timestamp -exclude_millis=False - -Returns current local or UTC time with an optional increment. - -Arguments: -- ``time_zone:`` Get the current time on this time zone. Currently only - ``local`` (default) and ``UTC`` are supported. -- ``increment:`` Optional time increment to add to the returned date in - one of the supported `time formats`. Can be negative. -- ``result_format:`` Format of the returned date (see `date formats`). -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. - -Examples: -| ${date} = | Get Current Date | -| Should Be Equal | ${date} | 2014-06-12 20:00:58.946 | -| ${date} = | Get Current Date | UTC | -| Should Be Equal | ${date} | 2014-06-12 17:00:58.946 | -| ${date} = | Get Current Date | increment=02:30:00 | -| Should Be Equal | ${date} | 2014-06-12 22:30:58.946 | -| ${date} = | Get Current Date | UTC | - 5 hours | -| Should Be Equal | ${date} | 2014-06-12 12:00:58.946 | -| ${date} = | Get Current Date | result_format=datetime | -| Should Be Equal | ${date.year} | ${2014} | -| Should Be Equal | ${date.month} | ${6} | - - - - - -date1 -date2 -result_format=number -exclude_millis=False -date1_format=None -date2_format=None - -Subtracts date from another date and returns time between. - -Arguments: -- ``date1:`` Date to subtract another date from in one of the - supported `date formats`. -- ``date2:`` Date that is subtracted in one of the supported - `date formats`. -- ``result_format:`` Format of the returned time (see `time formats`). -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. -- ``date1_format:`` Possible `custom timestamp` format of ``date1``. -- ``date2_format:`` Possible `custom timestamp` format of ``date2``. - - Examples: -| ${time} = | Subtract Date From Date | 2014-05-28 12:05:52 | 2014-05-28 12:05:10 | -| Should Be Equal | ${time} | ${42} | -| ${time} = | Subtract Date From Date | 2014-05-28 12:05:52 | 2014-05-27 12:05:10 | verbose | -| Should Be Equal | ${time} | 1 day 42 seconds | - - - - - -date -time -result_format=timestamp -exclude_millis=False -date_format=None - -Subtracts time from date and returns the resulting date. - -Arguments: -- ``date:`` Date to subtract time from in one of the supported - `date formats`. -- ``time:`` Time that is subtracted in one of the supported - `time formats`. -- ``result_format:`` Format of the returned date. -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. -- ``date_format:`` Possible `custom timestamp` format of ``date``. - -Examples: -| ${date} = | Subtract Time From Date | 2014-06-04 12:05:03.111 | 7 days | -| Should Be Equal | ${date} | 2014-05-28 12:05:03.111 | -| ${date} = | Subtract Time From Date | 2014-05-28 13:07:06.115 | 01:02:03:004 | -| Should Be Equal | ${date} | 2014-05-28 12:05:03.111 | - - - - - -time1 -time2 -result_format=number -exclude_millis=False - -Subtracts time from another time and returns the resulting time. - -Arguments: -- ``time1:`` Time to subtract another time from in one of - the supported `time formats`. -- ``time2:`` Time to subtract in one of the supported `time formats`. -- ``result_format:`` Format of the returned time. -- ``exclude_millis:`` When set to any true value, rounds and drops - milliseconds as explained in `millisecond handling`. - -Examples: -| ${time} = | Subtract Time From Time | 00:02:30 | 100 | -| Should Be Equal | ${time} | ${50} | -| ${time} = | Subtract Time From Time | ${time} | 1 minute | compact | -| Should Be Equal | ${time} | - 10s | - - - - diff --git a/libspecs/DependencyLibrary_bb1d1ad.libspec b/libspecs/DependencyLibrary_bb1d1ad.libspec deleted file mode 100644 index 95e914a1a..000000000 --- a/libspecs/DependencyLibrary_bb1d1ad.libspec +++ /dev/null @@ -1,55 +0,0 @@ - - - -global -yes -Documentation for library ``DependencyLibrary``. - - -name - - - - - - - -name - - - - - - - -name - - - - - - - -name - - - - - - - -name - - - - - - - -name - - - - - - diff --git a/libspecs/Dialogs.libspec b/libspecs/Dialogs.libspec deleted file mode 100644 index b02219559..000000000 --- a/libspecs/Dialogs.libspec +++ /dev/null @@ -1,112 +0,0 @@ - - -3.1 -global -yes -A test library providing dialogs for interacting with users. - -``Dialogs`` is Robot Framework's standard library that provides means -for pausing the test execution and getting input from users. The -dialogs are slightly different depending on whether tests are run on -Python, IronPython or Jython but they provide the same functionality. - -Long lines in the provided messages are wrapped automatically. If you want -to wrap lines manually, you can add newlines using the ``\n`` character -sequence. - -The library has a known limitation that it cannot be used with timeouts -on Python. Support for IronPython was added in Robot Framework 2.9.2. - - -message -default_error= - -Pauses test execution until user sets the keyword status. - -User can press either ``PASS`` or ``FAIL`` button. In the latter case execution -fails and an additional dialog is opened for defining the error message. - -``message`` is the instruction shown in the initial dialog and -``default_error`` is the default value shown in the possible error message -dialog. - - - - - -message -*values - -Pauses test execution and asks user to select a value. - -The selected value is returned. Pressing ``Cancel`` fails the keyword. - -``message`` is the instruction shown in the dialog and ``values`` are -the options given to the user. - -Example: -| ${user} = | Get Selection From User | Select user | user1 | user2 | admin | - - - - - -message -*values - -Pauses test execution and asks user to select multiple values. - -The selected values are returned as a list. Selecting no values is OK -and in that case the returned list is empty. Pressing ``Cancel`` fails -the keyword. - -``message`` is the instruction shown in the dialog and ``values`` are -the options given to the user. - -Example: -| ${users} = | Get Selections From User | Select users | user1 | user2 | admin | - -New in Robot Framework 3.1. - - - - - -message -default_value= -hidden=False - -Pauses test execution and asks user to input a value. - -Value typed by the user, or the possible default value, is returned. -Returning an empty value is fine, but pressing ``Cancel`` fails the keyword. - -``message`` is the instruction shown in the dialog and ``default_value`` is -the possible default value shown in the input field. - -If ``hidden`` is given a true value, the value typed by the user is hidden. -``hidden`` is considered true if it is a non-empty string not equal to -``false``, ``none`` or ``no``, case-insensitively. If it is not a string, -its truth value is got directly using same -[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. - -Example: -| ${username} = | Get Value From User | Input user name | default | -| ${password} = | Get Value From User | Input password | hidden=yes | - -Considering strings ``false`` and ``no`` to be false is new in RF 2.9 -and considering string ``none`` false is new in RF 3.0.3. - - - - - -message=Test execution paused. Press OK to continue. - -Pauses test execution until user clicks ``Ok`` button. - -``message`` is the message shown in the dialog. - - - - diff --git a/libspecs/Easter.libspec b/libspecs/Easter.libspec deleted file mode 100644 index de6bc76ca..000000000 --- a/libspecs/Easter.libspec +++ /dev/null @@ -1,15 +0,0 @@ - - - -global -yes -Documentation for library ``Easter``. - - -who - - - - - - diff --git a/libspecs/JSONLibrary_17ae429.libspec b/libspecs/JSONLibrary_17ae429.libspec deleted file mode 100644 index ce5576ce9..000000000 --- a/libspecs/JSONLibrary_17ae429.libspec +++ /dev/null @@ -1,171 +0,0 @@ - - - -global -yes -JSONLibrary is a robotframework testlibrary for manipulating JSON object (dictionary) - -You can get, add, update and delete your json object using JSONPath. - -== JSONPath Syntax == -| JSONPath | Description | -| $ | the root object/element | -| @ | the current object/element | -| . or [] | child operator | -| .. | recursive descent. JSONPath borrows this syntax from E4X | -| * | wildcard. All objects/element regardless their names. | -| [] | subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator. | -| [,] | Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set. | -| [start:end:step] | array slice operator borrowed from ES4 | -| ?() | applies a filter (script) expression. | -| () | script expression, using the underlying script engine. | - -== *** Known issue *** == -If there is a space in JSONPath expression, the module used by this library will throw an exception. -Therefore, please avoid the space in JSONPath expression if possible. - -*Example:* -| JSONPath | Exception? | -| $.[?(@.id == 1)] | Y | -| $.[?(@.id==1)] | N | -| $.[?(@.name=='test 123')] | N | - -== Example Test Cases == -| *** Settings *** | -| Library | JSONLibrary | -| | -| *** Test Cases *** | -| TestManipulatingJSON | -| ${json_object}= | Load JSON From File | example.json | -| ${object_to_add}= | Create Dictionary | country=Thailand | -| ${json_object}= | Add Object To Json | ${json_object} | $..address | ${object_to_add} | -| ${value}= | Get Value From Json | ${json_object} | $..country | -| Should Be Equal As Strings | ${value[0]} | Thailand | - - -json_object -json_path -object_to_add - -Add an dictionary or list object to json object using json_path - -Arguments: - - json_object: json as a dictionary object. - - json_path: jsonpath expression - - object_to_add: dictionary or list object to add to json_object which is matched by json_path - -Return new json object. - -Examples: -| ${dict}= | Create Dictionary | latitude=13.1234 | longitude=130.1234 | -| ${json}= | Add Object To Json | ${json} | $..address | ${dict} | - - - - - -json_object - -Convert JSON object to string - -Arguments: - - json_object: json as a dictionary object. - -Return new json_string - -Examples: -| ${json_str}= | Convert JSON To String | ${json_obj} | - - - - - -json_string - -Convert String to JSON object - -Arguments: - - json_string: JSON string - -Return new json_object - -Examples: -| ${json_object}= | Convert String to JSON | ${json_string} | - - - - - -json_object -json_path - -Delete Object From JSON using json_path - -Arguments: - - json_object: json as a dictionary object. - - json_path: jsonpath expression - -Return new json_object - -Examples: -| ${json_object}= | Delete Object From Json | ${json} | $..address.streetAddress | - - - - - -json_object -json_path - -Get Value From JSON using JSONPath - -Arguments: - - json_object: json as a dictionary object. - - json_path: jsonpath expression - -Return array of values - -Examples: -| ${values}= | Get Value From Json | ${json} | $..phone_number | - - - - - -file_name - -Load JSON from file. - -Return json as a dictionary object. - -Arguments: - - file_name: absolute json file name - -Return json object (list or dictionary) - -Examples: -| ${result}= | Load Json From File | /path/to/file.json | - - - - - -json_object -json_path -new_value - -Update value to JSON using JSONPath - -Arguments: - - json_object: json as a dictionary object. - - json_path: jsonpath expression - - new_value: value to update - -Return new json_object - -Examples: -| ${json_object}= | Update Value To Json | ${json} | $..address.streetAddress | Ratchadapisek Road | - - - - diff --git a/libspecs/JSONSchemaLibrary_c1d7acb.libspec b/libspecs/JSONSchemaLibrary_c1d7acb.libspec deleted file mode 100644 index 1e176c935..000000000 --- a/libspecs/JSONSchemaLibrary_c1d7acb.libspec +++ /dev/null @@ -1,31 +0,0 @@ - - - -global -yes -JSONSchemaLibrary is a library to validate JSON against JSON Schema definitions using Robot Framework. - -It uses the jsonschema library for Python: https://github.com/Julian/jsonschema - -*Before running tests* - -Prior to running JSONSchemaLibrary tests, you must make sure that the JSON Schema definitions are available -somewhere on the local filesystem. The default is to look in a subdirectory called `schemas`. - - -schema_location=schemas - -Initialize self. See help(type(self)) for accurate signature. - - - - - -schema_filename -sample - -Validates the sample JSON against the given schema. - - - - diff --git a/libspecs/MockServerLibrary_03fd3d4.libspec b/libspecs/MockServerLibrary_03fd3d4.libspec deleted file mode 100644 index 46a38b604..000000000 --- a/libspecs/MockServerLibrary_03fd3d4.libspec +++ /dev/null @@ -1,258 +0,0 @@ - - -0.0.6 -global -yes -Robot Framework library for interacting with [http://www.mock-server.com|MockServer] - -The purpose of this library is to provide a keyword-based API -towards MockServer to be used in robot tests. The project is hosted in -[https://github.com/etsi-cti-admin/robotframework-mockserver|GitHub], -and packages are released to PyPI. - -= Installation = - -| pip install robotframework-mockserver - -= Importing = - -The library does not currently support any import arguments, so use the -following setting to take the library into use: - -| Library | MockServerLibrary | - - -path - -Clears expectations and requests for a specific endpoint from the mockserver. - -`path` is the url of the endpoint for which to clean expectations and requests, e.g. /api - - - - - -method -path -response_code=200 -response_headers=None -body_type=JSON -response_body=None - -Creates a default expectation to be used by mockserver. - -`method` is the HTTP method of the mocked endpoint - -`path` is the url of the mocked endpoint, e.g. /api - -`response_code` is the HTTP status code of the response - -`response_headers` is a dictionary of headers to be added to the response - -`body_type` is the type of the response body, e.g. JSON - -`response_body` is a dictonary of JSON attribute(s) to be added to the response body - - - - - -request -response -count=1 -unlimited=True - -Creates a mock expectation to be used by mockserver. - -`request` is a mock request matcher in a dictionary format. - -`response` is a mock response in a dictionary format. - -`count` is the number of expected requests - -`unlimited` is a boolean value which, if enabled, allows unspecified number of -requests to reply to - - - - - -data - -Creates a mock expectation with defined data to be used by mockserver. - -`data` is a dictionary or JSON string with mock data. Please see -[https://app.swaggerhub.com/apis/jamesdbloom/mock-server_api|MockServer documentation] -for the detailed API reference. - - - - - -request -forward -count=1 -unlimited=True - -Creates a mock expectation with request and forward action to be used by mockserver. - -`request` is a mock request matcher in a dictionary format. - -`forward` is a mock forward in a dictionary format. - -`count` is the number of expected requests - -`unlimited` is a boolean value which, if enabled, allows unspecified number of -requests to reply to - - - - - -path -delay=1 -unit=SECONDS - -Creates a mock http override forward to be used by mockserver. - -Returns the http forward in a dictionary format. - -`path` is the new url where to forward the request - -`delay` is the delay of the forward action - -`unit` is the unit of the delay time (default "SECONDS") - - - - - -method -path -body_type=JSON -body=None -exact=True - -Creates a mock request matcher to be used by mockserver. - -Returns the request matcher in a dictionary format. - -`method` is the HTTP method of the mocked endpoint - -`path` is the url of the mocked endpoint, e.g. /api - -`body_type` is the type of the request body, e.g. JSON - -`body` is a dictionary of the json attribute(s) to match - -`exact` is a boolean value which specifies whether the body should match fully (=true), -or if only specified fields should match (=false) - - - - - -status_code -headers=None -body_type=JSON -body=None - -Creates a mock response to be used by mockserver. - -Returns the response in a dictionary format. - -`status_code` is the HTTP status code of the response - -`headers` is a dictionary of headers to be added to the response - -`body_type` is the type of the response body, e.g. JSON - -`body` is a dictonary of JSON attribute(s) to be added to the response body - - - - - -base_url - -Creates an HTTP session towards mockserver. - -`base_url` is the full url (including port, if applicable) of the mockserver, -e.g. http://localhost:1080. - - - - - - -Dumps logs at the mockserver. - - - - - - -Clears all expectations and received requests from the mockserver. - - - - - -path - -Retrieves expectations from the mockserver. - -`path` is the url of the endpoint for which to retrieve expectations, e.g. /api - - - - - -path - -Retrieves requests from the mockserver - -`path` is the url of the endpoint for which to retrieve requests, e.g. /api - - - - - -request -count=1 -exact=True - -Verifies that the mockserver has received a specific request. - -`request` is a request expectation created using the keyword `Create Mock Request Matcher` - -`count` is the minimum expected number of requests - -`exact` specifies whether the expected count should match the actual received count - - - - - -data - -Verifies a mock expectation with specified data. - -`data` is a dictionary or JSON string with mock data. Please see -[https://app.swaggerhub.com/apis/jamesdbloom/mock-server_api|MockServer documentation] -for the detailed API reference. - - - - - -requests - -Verifies that the mockserver has received a specific ordered request sequence. - -`requests` is a list of request expectations created using the keyword -`Create Mock Request Matcher` - - - - diff --git a/libspecs/OperatingSystem.libspec b/libspecs/OperatingSystem.libspec deleted file mode 100644 index 2ec003cd7..000000000 --- a/libspecs/OperatingSystem.libspec +++ /dev/null @@ -1,1138 +0,0 @@ - - -3.1 -global -yes -A test library providing keywords for OS related tasks. - -``OperatingSystem`` is Robot Framework's standard library that -enables various operating system related tasks to be performed in -the system where Robot Framework is running. It can, among other -things, execute commands (e.g. `Run`), create and remove files and -directories (e.g. `Create File`, `Remove Directory`), check -whether files or directories exists or contain something -(e.g. `File Should Exist`, `Directory Should Be Empty`) and -manipulate environment variables (e.g. `Set Environment Variable`). - -== Table of contents == - -- `Path separators` -- `Pattern matching` -- `Tilde expansion` -- `Boolean arguments` -- `Example` -- `Shortcuts` -- `Keywords` - -= Path separators = - -Because Robot Framework uses the backslash (``\``) as an escape character -in the test data, using a literal backslash requires duplicating it like -in ``c:\\path\\file.txt``. That can be inconvenient especially with -longer Windows paths, and thus all keywords expecting paths as arguments -convert forward slashes to backslashes automatically on Windows. This also -means that paths like ``${CURDIR}/path/file.txt`` are operating system -independent. - -Notice that the automatic path separator conversion does not work if -the path is only a part of an argument like with `Run` and `Start Process` -keywords. In these cases the built-in variable ``${/}`` that contains -``\`` or ``/``, depending on the operating system, can be used instead. - -= Pattern matching = - -Some keywords allow their arguments to be specified as -[http://en.wikipedia.org/wiki/Glob_(programming)|glob patterns] where: - -| ``*`` | matches any string, even an empty string | -| ``?`` | matches any single character | -| ``[chars]`` | matches one character in the bracket | -| ``[!chars]`` | matches one character not in the bracket | -| ``[a-z]`` | matches one character from the range in the bracket | -| ``[!a-z]`` | matches one character not from the range in the bracket | - -Unless otherwise noted, matching is case-insensitive on -case-insensitive operating systems such as Windows. - -Starting from Robot Framework 2.9.1, globbing is not done if the given path -matches an existing file even if it would contain a glob pattern. - -= Tilde expansion = - -Paths beginning with ``~`` or ``~username`` are expanded to the current or -specified user's home directory, respectively. The resulting path is -operating system dependent, but typically e.g. ``~/robot`` is expanded to -``C:\Users\<user>\robot`` on Windows and ``/home/<user>/robot`` on -Unixes. - -The ``~username`` form does not work on Jython. - -= Boolean arguments = - -Some keywords accept arguments that are handled as Boolean values true or -false. If such an argument is given as a string, it is considered false if -it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or -``0``, case-insensitively. Other strings are considered true regardless -their value, and other argument types are tested using the same -[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. - -True examples: -| `Remove Directory` | ${path} | recursive=True | # Strings are generally true. | -| `Remove Directory` | ${path} | recursive=yes | # Same as the above. | -| `Remove Directory` | ${path} | recursive=${TRUE} | # Python ``True`` is true. | -| `Remove Directory` | ${path} | recursive=${42} | # Numbers other than 0 are true. | - -False examples: -| `Remove Directory` | ${path} | recursive=False | # String ``false`` is false. | -| `Remove Directory` | ${path} | recursive=no | # Also string ``no`` is false. | -| `Remove Directory` | ${path} | recursive=${EMPTY} | # Empty string is false. | -| `Remove Directory` | ${path} | recursive=${FALSE} | # Python ``False`` is false. | - -Considering string ``NONE`` false is new in Robot Framework 3.0.3 and -considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. - -= Example = - -| =Setting= | =Value= | -| Library | OperatingSystem | - -| =Variable= | =Value= | -| ${PATH} | ${CURDIR}/example.txt | - -| =Test Case= | =Action= | =Argument= | =Argument= | -| Example | Create File | ${PATH} | Some text | -| | File Should Exist | ${PATH} | | -| | Copy File | ${PATH} | ~/file.txt | -| | ${output} = | Run | ${TEMPDIR}${/}script.py arg | - - -name -*values -**config - -Appends given ``values`` to environment variable ``name``. - -If the environment variable already exists, values are added after it, -and otherwise a new environment variable is created. - -Values are, by default, joined together using the operating system -path separator (``;`` on Windows, ``:`` elsewhere). This can be changed -by giving a separator after the values like ``separator=value``. No -other configuration parameters are accepted. - -Examples (assuming ``NAME`` and ``NAME2`` do not exist initially): -| Append To Environment Variable | NAME | first | | -| Should Be Equal | %{NAME} | first | | -| Append To Environment Variable | NAME | second | third | -| Should Be Equal | %{NAME} | first${:}second${:}third | -| Append To Environment Variable | NAME2 | first | separator=- | -| Should Be Equal | %{NAME2} | first | | -| Append To Environment Variable | NAME2 | second | separator=- | -| Should Be Equal | %{NAME2} | first-second | - - - - - -path -content -encoding=UTF-8 - -Appends the given content to the specified file. - -If the file does not exists, this keyword works exactly the same -way as `Create File`. - - - - - -source -destination - -Copies the source directory into the destination. - -If the destination exists, the source is copied under it. Otherwise -the destination directory and the possible missing intermediate -directories are created. - - - - - -source -destination - -Copies the source file into the destination. - -Source must be a path to an existing file or a glob pattern (see -`Pattern matching`) that matches exactly one file. How the -destination is interpreted is explained below. - -1) If the destination is an existing file, the source file is copied -over it. - -2) If the destination is an existing directory, the source file is -copied into it. A possible file with the same name as the source is -overwritten. - -3) If the destination does not exist and it ends with a path -separator (``/`` or ``\``), it is considered a directory. That -directory is created and a source file copied into it. -Possible missing intermediate directories are also created. - -4) If the destination does not exist and it does not end with a path -separator, it is considered a file. If the path to the file does not -exist, it is created. - -The resulting destination path is returned since Robot Framework 2.9.2. - -See also `Copy Files`, `Move File`, and `Move Files`. - - - - - -*sources_and_destination - -Copies specified files to the target directory. - -Source files can be given as exact paths and as glob patterns (see -`Pattern matching`). At least one source must be given, but it is -not an error if it is a pattern that does not match anything. - -Last argument must be the destination directory. If the destination -does not exist, it will be created. - -Examples: -| Copy Files | ${dir}/file1.txt | ${dir}/file2.txt | ${dir2} | -| Copy Files | ${dir}/file-*.txt | ${dir2} | | - -See also `Copy File`, `Move File`, and `Move Files`. - - - - - -path -pattern=None - -Wrapper for `Count Items In Directory` returning only directory count. - - - - - -path -pattern=None - -Wrapper for `Count Items In Directory` returning only file count. - - - - - -path -pattern=None - -Returns and logs the number of all items in the given directory. - -The argument ``pattern`` has the same semantics as with `List Directory` -keyword. The count is returned as an integer, so it must be checked e.g. -with the built-in keyword `Should Be Equal As Integers`. - - - - - -path -content - -Creates a binary file with the given content. - -If content is given as a Unicode string, it is first converted to bytes -character by character. All characters with ordinal below 256 can be -used and are converted to bytes with same values. Using characters -with higher ordinal is an error. - -Byte strings, and possible other types, are written to the file as is. - -If the directory for the file does not exist, it is created, along -with missing intermediate directories. - -Examples: -| Create Binary File | ${dir}/example.png | ${image content} | -| Create Binary File | ${path} | \x01\x00\xe4\x00 | - -Use `Create File` if you want to create a text file using a certain -encoding. `File Should Not Exist` can be used to avoid overwriting -existing files. - - - - - -path - -Creates the specified directory. - -Also possible intermediate directories are created. Passes if the -directory already exists, but fails if the path exists and is not -a directory. - - - - - -path -content= -encoding=UTF-8 - -Creates a file with the given content and encoding. - -If the directory for the file does not exist, it is created, along -with missing intermediate directories. - -See `Get File` for more information about possible ``encoding`` values, -including special values ``SYSTEM`` and ``CONSOLE``. - -Examples: -| Create File | ${dir}/example.txt | Hello, world! | | -| Create File | ${path} | Hyv\xe4 esimerkki | Latin-1 | -| Create File | /tmp/foo.txt | ${content} | SYSTEM | - -Use `Append To File` if you want to append to an existing file -and `Create Binary File` if you need to write bytes without encoding. -`File Should Not Exist` can be used to avoid overwriting existing -files. - -The support for ``SYSTEM`` and ``CONSOLE`` encodings is new in Robot -Framework 3.0. - - - - - -path -msg=None - -Fails unless the specified directory is empty. - -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails unless the given path points to an existing directory. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails if the specified directory is empty. - -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails if the given path points to an existing file. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -The default error message can be overridden with the ``msg`` argument. - - - - - -path - -Deletes all the content from the given directory. - -Deletes both files and sub-directories, but the specified directory -itself if not removed. Use `Remove Directory` if you want to remove -the whole directory. - - - - - -name -msg=None - -Fails if the specified environment variable is not set. - -The default error message can be overridden with the ``msg`` argument. - - - - - -name -msg=None - -Fails if the specified environment variable is set. - -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails unless the specified file is empty. - -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails unless the given ``path`` points to an existing file. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails if the specified directory is empty. - -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails if the given path points to an existing file. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -The default error message can be overridden with the ``msg`` argument. - - - - - -path - -Returns the contents of a specified file. - -This keyword reads the specified file and returns the contents as is. -See also `Get File`. - - - - - -name -default=None - -Returns the value of an environment variable with the given name. - -If no such environment variable is set, returns the default value, if -given. Otherwise fails the test case. - -Returned variables are automatically decoded to Unicode using -the system encoding. - -Note that you can also access environment variables directly using -the variable syntax ``%{ENV_VAR_NAME}``. - - - - - - -Returns currently available environment variables as a dictionary. - -Both keys and values are decoded to Unicode using the system encoding. -Altering the returned dictionary has no effect on the actual environment -variables. - - - - - -path -encoding=UTF-8 -encoding_errors=strict - -Returns the contents of a specified file. - -This keyword reads the specified file and returns the contents. -Line breaks in content are converted to platform independent form. -See also `Get Binary File`. - -``encoding`` defines the encoding of the file. The default value is -``UTF-8``, which means that UTF-8 and ASCII encoded files are read -correctly. In addition to the encodings supported by the underlying -Python implementation, the following special encoding values can be -used: - -- ``SYSTEM``: Use the default system encoding. -- ``CONSOLE``: Use the console encoding. Outside Windows this is same - as the system encoding. - -``encoding_errors`` argument controls what to do if decoding some bytes -fails. All values accepted by ``decode`` method in Python are valid, but -in practice the following values are most useful: - -- ``strict``: Fail if characters cannot be decoded (default). -- ``ignore``: Ignore characters that cannot be decoded. -- ``replace``: Replace characters that cannot be decoded with - a replacement character. - -Support for ``SYSTEM`` and ``CONSOLE`` encodings in Robot Framework 3.0. - - - - - -path - -Returns and logs file size as an integer in bytes. - - - - - -path -format=timestamp - -Returns the last modification time of a file or directory. - -How time is returned is determined based on the given ``format`` -string as follows. Note that all checks are case-insensitive. -Returned time is also automatically logged. - -1) If ``format`` contains the word ``epoch``, the time is returned - in seconds after the UNIX epoch. The return value is always - an integer. - -2) If ``format`` contains any of the words ``year``, ``month``, - ``day``, ``hour``, ``min`` or ``sec``, only the selected parts are - returned. The order of the returned parts is always the one - in the previous sentence and the order of the words in - ``format`` is not significant. The parts are returned as - zero-padded strings (e.g. May -> ``05``). - -3) Otherwise, and by default, the time is returned as a - timestamp string in the format ``2006-02-24 15:08:31``. - -Examples (when the modified time of ``${CURDIR}`` is -2006-03-29 15:06:21): -| ${time} = | Get Modified Time | ${CURDIR} | -| ${secs} = | Get Modified Time | ${CURDIR} | epoch | -| ${year} = | Get Modified Time | ${CURDIR} | return year | -| ${y} | ${d} = | Get Modified Time | ${CURDIR} | year,day | -| @{time} = | Get Modified Time | ${CURDIR} | year,month,day,hour,min,sec | -=> -- ${time} = '2006-03-29 15:06:21' -- ${secs} = 1143637581 -- ${year} = '2006' -- ${y} = '2006' & ${d} = '29' -- @{time} = ['2006', '03', '29', '15', '06', '21'] - - - - - -path -pattern -encoding=UTF-8 -encoding_errors=strict - -Returns the lines of the specified file that match the ``pattern``. - -This keyword reads a file from the file system using the defined -``path``, ``encoding`` and ``encoding_errors`` similarly as `Get File`. -A difference is that only the lines that match the given ``pattern`` are -returned. Lines are returned as a single string catenated back together -with newlines and the number of matched lines is automatically logged. -Possible trailing newline is never returned. - -A line matches if it contains the ``pattern`` anywhere in it and -it *does not need to match the pattern fully*. The pattern -matching syntax is explained in `introduction`, and in this -case matching is case-sensitive. - -Examples: -| ${errors} = | Grep File | /var/log/myapp.log | ERROR | -| ${ret} = | Grep File | ${CURDIR}/file.txt | [Ww]ildc??d ex*ple | - -If more complex pattern matching is needed, it is possible to use -`Get File` in combination with String library keywords like `Get -Lines Matching Regexp`. - - - - - -base -*parts - -Joins the given path part(s) to the given base path. - -The path separator (``/`` or ``\``) is inserted when needed and -the possible absolute paths handled as expected. The resulted -path is also normalized. - -Examples: -| ${path} = | Join Path | my | path | -| ${p2} = | Join Path | my/ | path/ | -| ${p3} = | Join Path | my | path | my | file.txt | -| ${p4} = | Join Path | my | /path | -| ${p5} = | Join Path | /my/path/ | .. | path2 | -=> -- ${path} = 'my/path' -- ${p2} = 'my/path' -- ${p3} = 'my/path/my/file.txt' -- ${p4} = '/path' -- ${p5} = '/my/path2' - - - - - -base -*paths - -Joins given paths with base and returns resulted paths. - -See `Join Path` for more information. - -Examples: -| @{p1} = | Join Paths | base | example | other | | -| @{p2} = | Join Paths | /my/base | /example | other | | -| @{p3} = | Join Paths | my/base | example/path/ | other | one/more | -=> -- @{p1} = ['base/example', 'base/other'] -- @{p2} = ['/example', '/my/base/other'] -- @{p3} = ['my/base/example/path', 'my/base/other', 'my/base/one/more'] - - - - - -path -pattern=None -absolute=False - -Wrapper for `List Directory` that returns only directories. - - - - - -path -pattern=None -absolute=False - -Returns and logs items in a directory, optionally filtered with ``pattern``. - -File and directory names are returned in case-sensitive alphabetical -order, e.g. ``['A Name', 'Second', 'a lower case name', 'one more']``. -Implicit directories ``.`` and ``..`` are not returned. The returned -items are automatically logged. - -File and directory names are returned relative to the given path -(e.g. ``'file.txt'``) by default. If you want them be returned in -absolute format (e.g. ``'/home/robot/file.txt'``), give the ``absolute`` -argument a true value (see `Boolean arguments`). - -If ``pattern`` is given, only items matching it are returned. The pattern -matching syntax is explained in `introduction`, and in this case -matching is case-sensitive. - -Examples (using also other `List Directory` variants): -| @{items} = | List Directory | ${TEMPDIR} | -| @{files} = | List Files In Directory | /tmp | *.txt | absolute | -| ${count} = | Count Files In Directory | ${CURDIR} | ??? | - - - - - -path -pattern=None -absolute=False - -Wrapper for `List Directory` that returns only files. - - - - - -level=INFO - -Logs all environment variables using the given log level. - -Environment variables are also returned the same way as with -`Get Environment Variables` keyword. - - - - - -path -encoding=UTF-8 -encoding_errors=strict - -Wrapper for `Get File` that also logs the returned file. - -The file is logged with the INFO level. If you want something else, -just use `Get File` and the built-in keyword `Log` with the desired -level. - -See `Get File` for more information about ``encoding`` and -``encoding_errors`` arguments. - - - - - -source -destination - -Moves the source directory into a destination. - -Uses `Copy Directory` keyword internally, and ``source`` and -``destination`` arguments have exactly same semantics as with -that keyword. - - - - - -source -destination - -Moves the source file into the destination. - -Arguments have exactly same semantics as with `Copy File` keyword. -Destination file path is returned since Robot Framework 2.9.2. - -If the source and destination are on the same filesystem, rename -operation is used. Otherwise file is copied to the destination -filesystem and then removed from the original filesystem. - -See also `Move Files`, `Copy File`, and `Copy Files`. - - - - - -*sources_and_destination - -Moves specified files to the target directory. - -Arguments have exactly same semantics as with `Copy Files` keyword. - -See also `Move File`, `Copy File`, and `Copy Files`. - - - - - -path -case_normalize=False - -Normalizes the given path. - -- Collapses redundant separators and up-level references. -- Converts ``/`` to ``\`` on Windows. -- Replaces initial ``~`` or ``~user`` by that user's home directory. - The latter is not supported on Jython. -- If ``case_normalize`` is given a true value (see `Boolean arguments`) - on Windows, converts the path to all lowercase. New in Robot - Framework 3.1. - -Examples: -| ${path1} = | Normalize Path | abc/ | -| ${path2} = | Normalize Path | abc/../def | -| ${path3} = | Normalize Path | abc/./def//ghi | -| ${path4} = | Normalize Path | ~robot/stuff | -=> -- ${path1} = 'abc' -- ${path2} = 'def' -- ${path3} = 'abc/def/ghi' -- ${path4} = '/home/robot/stuff' - -On Windows result would use ``\`` instead of ``/`` and home directory -would be different. - - - - - -path -recursive=False - -Removes the directory pointed to by the given ``path``. - -If the second argument ``recursive`` is given a true value (see -`Boolean arguments`), the directory is removed recursively. Otherwise -removing fails if the directory is not empty. - -If the directory pointed to by the ``path`` does not exist, the keyword -passes, but it fails, if the ``path`` points to a file. - - - - - -*names - -Deletes the specified environment variable. - -Does nothing if the environment variable is not set. - -It is possible to remove multiple variables by passing them to this -keyword as separate arguments. - - - - - -path - -Removes a file with the given path. - -Passes if the file does not exist, but fails if the path does -not point to a regular file (e.g. it points to a directory). - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -If the path is a pattern, all files matching it are removed. - - - - - -*paths - -Uses `Remove File` to remove multiple files one-by-one. - -Example: -| Remove Files | ${TEMPDIR}${/}foo.txt | ${TEMPDIR}${/}bar.txt | ${TEMPDIR}${/}zap.txt | - - - - - -command - -Runs the given command in the system and returns the output. - -The execution status of the command *is not checked* by this -keyword, and it must be done separately based on the returned -output. If the execution return code is needed, either `Run -And Return RC` or `Run And Return RC And Output` can be used. - -The standard error stream is automatically redirected to the standard -output stream by adding ``2>&1`` after the executed command. This -automatic redirection is done only when the executed command does not -contain additional output redirections. You can thus freely forward -the standard error somewhere else, for example, like -``my_command 2>stderr.txt``. - -The returned output contains everything written into the standard -output or error streams by the command (unless either of them -is redirected explicitly). Many commands add an extra newline -(``\n``) after the output to make it easier to read in the -console. To ease processing the returned output, this possible -trailing newline is stripped by this keyword. - -Examples: -| ${output} = | Run | ls -lhF /tmp | -| Log | ${output} | -| ${result} = | Run | ${CURDIR}${/}tester.py arg1 arg2 | -| Should Not Contain | ${result} | FAIL | -| ${stdout} = | Run | /opt/script.sh 2>/tmp/stderr.txt | -| Should Be Equal | ${stdout} | TEST PASSED | -| File Should Be Empty | /tmp/stderr.txt | - -*TIP:* `Run Process` keyword provided by the -[http://robotframework.org/robotframework/latest/libraries/Process.html| -Process library] supports better process configuration and is generally -recommended as a replacement for this keyword. - - - - - -command - -Runs the given command in the system and returns the return code. - -The return code (RC) is returned as a positive integer in -range from 0 to 255 as returned by the executed command. On -some operating systems (notable Windows) original return codes -can be something else, but this keyword always maps them to -the 0-255 range. Since the RC is an integer, it must be -checked e.g. with the keyword `Should Be Equal As Integers` -instead of `Should Be Equal` (both are built-in keywords). - -Examples: -| ${rc} = | Run and Return RC | ${CURDIR}${/}script.py arg | -| Should Be Equal As Integers | ${rc} | 0 | -| ${rc} = | Run and Return RC | /path/to/example.rb arg1 arg2 | -| Should Be True | 0 < ${rc} < 42 | - -See `Run` and `Run And Return RC And Output` if you need to get the -output of the executed command. - -*TIP:* `Run Process` keyword provided by the -[http://robotframework.org/robotframework/latest/libraries/Process.html| -Process library] supports better process configuration and is generally -recommended as a replacement for this keyword. - - - - - -command - -Runs the given command in the system and returns the RC and output. - -The return code (RC) is returned similarly as with `Run And Return RC` -and the output similarly as with `Run`. - -Examples: -| ${rc} | ${output} = | Run and Return RC and Output | ${CURDIR}${/}mytool | -| Should Be Equal As Integers | ${rc} | 0 | -| Should Not Contain | ${output} | FAIL | -| ${rc} | ${stdout} = | Run and Return RC and Output | /opt/script.sh 2>/tmp/stderr.txt | -| Should Be True | ${rc} > 42 | -| Should Be Equal | ${stdout} | TEST PASSED | -| File Should Be Empty | /tmp/stderr.txt | - -*TIP:* `Run Process` keyword provided by the -[http://robotframework.org/robotframework/latest/libraries/Process.html| -Process library] supports better process configuration and is generally -recommended as a replacement for this keyword. - - - - - -name -value - -Sets an environment variable to a specified value. - -Values are converted to strings automatically. Set variables are -automatically encoded using the system encoding. - - - - - -path -mtime - -Sets the file modification and access times. - -Changes the modification and access times of the given file to -the value determined by ``mtime``. The time can be given in -different formats described below. Note that all checks -involving strings are case-insensitive. Modified time can only -be set to regular files. - -1) If ``mtime`` is a number, or a string that can be converted - to a number, it is interpreted as seconds since the UNIX - epoch (1970-01-01 00:00:00 UTC). This documentation was - originally written about 1177654467 seconds after the epoch. - -2) If ``mtime`` is a timestamp, that time will be used. Valid - timestamp formats are ``YYYY-MM-DD hh:mm:ss`` and - ``YYYYMMDD hhmmss``. - -3) If ``mtime`` is equal to ``NOW``, the current local time is used. - -4) If ``mtime`` is equal to ``UTC``, the current time in - [http://en.wikipedia.org/wiki/Coordinated_Universal_Time|UTC] - is used. - -5) If ``mtime`` is in the format like ``NOW - 1 day`` or ``UTC + 1 - hour 30 min``, the current local/UTC time plus/minus the time - specified with the time string is used. The time string format - is described in an appendix of Robot Framework User Guide. - -Examples: -| Set Modified Time | /path/file | 1177654467 | # Time given as epoch seconds | -| Set Modified Time | /path/file | 2007-04-27 9:14:27 | # Time given as a timestamp | -| Set Modified Time | /path/file | NOW | # The local time of execution | -| Set Modified Time | /path/file | NOW - 1 day | # 1 day subtracted from the local time | -| Set Modified Time | /path/file | UTC + 1h 2min 3s | # 1h 2min 3s added to the UTC time | - - - - - -path -msg=None - -Fails unless the given path (file or directory) exists. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -The default error message can be overridden with the ``msg`` argument. - - - - - -path -msg=None - -Fails if the given path (file or directory) exists. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -The default error message can be overridden with the ``msg`` argument. - - - - - -path - -Splits the extension from the given path. - -The given path is first normalized (e.g. possible trailing -path separators removed, special directories ``..`` and ``.`` -removed). The base path and extension are returned as separate -components so that the dot used as an extension separator is -removed. If the path contains no extension, an empty string is -returned for it. Possible leading and trailing dots in the file -name are never considered to be extension separators. - -Examples: -| ${path} | ${ext} = | Split Extension | file.extension | -| ${p2} | ${e2} = | Split Extension | path/file.ext | -| ${p3} | ${e3} = | Split Extension | path/file | -| ${p4} | ${e4} = | Split Extension | p1/../p2/file.ext | -| ${p5} | ${e5} = | Split Extension | path/.file.ext | -| ${p6} | ${e6} = | Split Extension | path/.file | -=> -- ${path} = 'file' & ${ext} = 'extension' -- ${p2} = 'path/file' & ${e2} = 'ext' -- ${p3} = 'path/file' & ${e3} = '' -- ${p4} = 'p2/file' & ${e4} = 'ext' -- ${p5} = 'path/.file' & ${e5} = 'ext' -- ${p6} = 'path/.file' & ${e6} = '' - - - - - -path - -Splits the given path from the last path separator (``/`` or ``\``). - -The given path is first normalized (e.g. a possible trailing -path separator is removed, special directories ``..`` and ``.`` -removed). The parts that are split are returned as separate -components. - -Examples: -| ${path1} | ${dir} = | Split Path | abc/def | -| ${path2} | ${file} = | Split Path | abc/def/ghi.txt | -| ${path3} | ${d2} = | Split Path | abc/../def/ghi/ | -=> -- ${path1} = 'abc' & ${dir} = 'def' -- ${path2} = 'abc/def' & ${file} = 'ghi.txt' -- ${path3} = 'def' & ${d2} = 'ghi' - - - - - -path - -Emulates the UNIX touch command. - -Creates a file, if it does not exist. Otherwise changes its access and -modification times to the current time. - -Fails if used with the directories or the parent directory of the given -file does not exist. - - - - - -path -timeout=1 minute - -Waits until the given file or directory is created. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -If the path is a pattern, the keyword returns when an item matching -it is created. - -The optional ``timeout`` can be used to control the maximum time of -waiting. The timeout is given as a timeout string, e.g. in a format -``15 seconds``, ``1min 10s`` or just ``10``. The time string format is -described in an appendix of Robot Framework User Guide. - -If the timeout is negative, the keyword is never timed-out. The keyword -returns immediately, if the path already exists. - - - - - -path -timeout=1 minute - -Waits until the given file or directory is removed. - -The path can be given as an exact path or as a glob pattern. -The pattern matching syntax is explained in `introduction`. -If the path is a pattern, the keyword waits until all matching -items are removed. - -The optional ``timeout`` can be used to control the maximum time of -waiting. The timeout is given as a timeout string, e.g. in a format -``15 seconds``, ``1min 10s`` or just ``10``. The time string format is -described in an appendix of Robot Framework User Guide. - -If the timeout is negative, the keyword is never timed-out. The keyword -returns immediately, if the path does not exist in the first place. - - - - diff --git a/libspecs/Process.libspec b/libspecs/Process.libspec deleted file mode 100644 index ad9fe354c..000000000 --- a/libspecs/Process.libspec +++ /dev/null @@ -1,637 +0,0 @@ - - -3.1 -global -yes -Robot Framework test library for running processes. - -This library utilizes Python's -[http://docs.python.org/library/subprocess.html|subprocess] -module and its -[http://docs.python.org/library/subprocess.html#popen-constructor|Popen] -class. - -The library has following main usages: - -- Running processes in system and waiting for their completion using - `Run Process` keyword. -- Starting processes on background using `Start Process`. -- Waiting started process to complete using `Wait For Process` or - stopping them with `Terminate Process` or `Terminate All Processes`. - -== Table of contents == - -- `Specifying command and arguments` -- `Process configuration` -- `Active process` -- `Result object` -- `Boolean arguments` -- `Example` -- `Shortcuts` -- `Keywords` - -= Specifying command and arguments = - -Both `Run Process` and `Start Process` accept the command to execute and -all arguments passed to the command as separate arguments. This makes usage -convenient and also allows these keywords to automatically escape possible -spaces and other special characters in commands and arguments. Notice that -if a command accepts options that themselves accept values, these options -and their values must be given as separate arguments. - -When `running processes in shell`, it is also possible to give the whole -command to execute as a single string. The command can then contain -multiple commands to be run together. When using this approach, the caller -is responsible on escaping. - -Examples: -| `Run Process` | ${tools}${/}prog.py | argument | second arg with spaces | -| `Run Process` | java | -jar | ${jars}${/}example.jar | --option | value | -| `Run Process` | prog.py "one arg" && tool.sh | shell=yes | cwd=${tools} | - -Possible non-string arguments are converted to strings automatically. - -= Process configuration = - -`Run Process` and `Start Process` keywords can be configured using -optional ``**configuration`` keyword arguments. Configuration arguments -must be given after other arguments passed to these keywords and must -use syntax like ``name=value``. Available configuration arguments are -listed below and discussed further in sections afterwards. - -| = Name = | = Explanation = | -| shell | Specifies whether to run the command in shell or not. | -| cwd | Specifies the working directory. | -| env | Specifies environment variables given to the process. | -| env:<name> | Overrides the named environment variable(s) only. | -| stdout | Path of a file where to write standard output. | -| stderr | Path of a file where to write standard error. | -| output_encoding | Encoding to use when reading command outputs. | -| alias | Alias given to the process. | - -Note that because ``**configuration`` is passed using ``name=value`` syntax, -possible equal signs in other arguments passed to `Run Process` and -`Start Process` must be escaped with a backslash like ``name\=value``. -See `Run Process` for an example. - -== Running processes in shell == - -The ``shell`` argument specifies whether to run the process in a shell or -not. By default shell is not used, which means that shell specific commands, -like ``copy`` and ``dir`` on Windows, are not available. You can, however, -run shell scripts and batch files without using a shell. - -Giving the ``shell`` argument any non-false value, such as ``shell=True``, -changes the program to be executed in a shell. It allows using the shell -capabilities, but can also make the process invocation operating system -dependent. Having a shell between the actually started process and this -library can also interfere communication with the process such as stopping -it and reading its outputs. Because of these problems, it is recommended -to use the shell only when absolutely necessary. - -When using a shell it is possible to give the whole command to execute -as a single string. See `Specifying command and arguments` section for -examples and more details in general. - -== Current working directory == - -By default the child process will be executed in the same directory -as the parent process, the process running tests, is executed. This -can be changed by giving an alternative location using the ``cwd`` argument. -Forward slashes in the given path are automatically converted to -backslashes on Windows. - -`Standard output and error streams`, when redirected to files, -are also relative to the current working directory possibly set using -the ``cwd`` argument. - -Example: -| `Run Process` | prog.exe | cwd=${ROOT}/directory | stdout=stdout.txt | - -== Environment variables == - -By default the child process will get a copy of the parent process's -environment variables. The ``env`` argument can be used to give the -child a custom environment as a Python dictionary. If there is a need -to specify only certain environment variable, it is possible to use the -``env:<name>=<value>`` format to set or override only that named variables. -It is also possible to use these two approaches together. - -Examples: -| `Run Process` | program | env=${environ} | -| `Run Process` | program | env:http_proxy=10.144.1.10:8080 | env:PATH=%{PATH}${:}${PROGDIR} | -| `Run Process` | program | env=${environ} | env:EXTRA=value | - -== Standard output and error streams == - -By default processes are run so that their standard output and standard -error streams are kept in the memory. This works fine normally, -but if there is a lot of output, the output buffers may get full and -the program can hang. Additionally on Jython, everything written to -these in-memory buffers can be lost if the process is terminated. - -To avoid the above mentioned problems, it is possible to use ``stdout`` -and ``stderr`` arguments to specify files on the file system where to -redirect the outputs. This can also be useful if other processes or -other keywords need to read or manipulate the outputs somehow. - -Given ``stdout`` and ``stderr`` paths are relative to the `current working -directory`. Forward slashes in the given paths are automatically converted -to backslashes on Windows. - -As a special feature, it is possible to redirect the standard error to -the standard output by using ``stderr=STDOUT``. - -Regardless are outputs redirected to files or not, they are accessible -through the `result object` returned when the process ends. Commands are -expected to write outputs using the console encoding, but `output encoding` -can be configured using the ``output_encoding`` argument if needed. - -Examples: -| ${result} = | `Run Process` | program | stdout=${TEMPDIR}/stdout.txt | stderr=${TEMPDIR}/stderr.txt | -| `Log Many` | stdout: ${result.stdout} | stderr: ${result.stderr} | -| ${result} = | `Run Process` | program | stderr=STDOUT | -| `Log` | all output: ${result.stdout} | - -Note that the created output files are not automatically removed after -the test run. The user is responsible to remove them if needed. - -== Output encoding == - -Executed commands are, by default, expected to write outputs to the -`standard output and error streams` using the encoding used by the -system console. If the command uses some other encoding, that can be -configured using the ``output_encoding`` argument. This is especially -useful on Windows where the console uses a different encoding than rest -of the system, and many commands use the general system encoding instead -of the console encoding. - -The value used with the ``output_encoding`` argument must be a valid -encoding and must match the encoding actually used by the command. As a -convenience, it is possible to use strings ``CONSOLE`` and ``SYSTEM`` -to specify that the console or system encoding is used, respectively. -If produced outputs use different encoding then configured, values got -through the `result object` will be invalid. - -Examples: -| `Start Process` | program | output_encoding=UTF-8 | -| `Run Process` | program | stdout=${path} | output_encoding=SYSTEM | - -The support to set output encoding is new in Robot Framework 3.0. - -== Alias == - -A custom name given to the process that can be used when selecting the -`active process`. - -Examples: -| `Start Process` | program | alias=example | -| `Run Process` | python | -c | print 'hello' | alias=hello | - -= Active process = - -The test library keeps record which of the started processes is currently -active. By default it is latest process started with `Start Process`, -but `Switch Process` can be used to select a different one. Using -`Run Process` does not affect the active process. - -The keywords that operate on started processes will use the active process -by default, but it is possible to explicitly select a different process -using the ``handle`` argument. The handle can be the identifier returned by -`Start Process` or an ``alias`` explicitly given to `Start Process` or -`Run Process`. - -= Result object = - -`Run Process`, `Wait For Process` and `Terminate Process` keywords return a -result object that contains information about the process execution as its -attributes. The same result object, or some of its attributes, can also -be get using `Get Process Result` keyword. Attributes available in the -object are documented in the table below. - -| = Attribute = | = Explanation = | -| rc | Return code of the process as an integer. | -| stdout | Contents of the standard output stream. | -| stderr | Contents of the standard error stream. | -| stdout_path | Path where stdout was redirected or ``None`` if not redirected. | -| stderr_path | Path where stderr was redirected or ``None`` if not redirected. | - -Example: -| ${result} = | `Run Process` | program | -| `Should Be Equal As Integers` | ${result.rc} | 0 | -| `Should Match` | ${result.stdout} | Some t?xt* | -| `Should Be Empty` | ${result.stderr} | | -| ${stdout} = | `Get File` | ${result.stdout_path} | -| `Should Be Equal` | ${stdout} | ${result.stdout} | -| `File Should Be Empty` | ${result.stderr_path} | | - -= Boolean arguments = - -Some keywords accept arguments that are handled as Boolean values true or -false. If such an argument is given as a string, it is considered false if -it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or -``0``, case-insensitively. Other strings are considered true regardless -their value, and other argument types are tested using the same -[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. - -True examples: -| `Terminate Process` | kill=True | # Strings are generally true. | -| `Terminate Process` | kill=yes | # Same as the above. | -| `Terminate Process` | kill=${TRUE} | # Python ``True`` is true. | -| `Terminate Process` | kill=${42} | # Numbers other than 0 are true. | - -False examples: -| `Terminate Process` | kill=False | # String ``false`` is false. | -| `Terminate Process` | kill=no | # Also string ``no`` is false. | -| `Terminate Process` | kill=${EMPTY} | # Empty string is false. | -| `Terminate Process` | kill=${FALSE} | # Python ``False`` is false. | - -Considering string ``NONE`` false is new in Robot Framework 3.0.3 and -considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. - -= Example = - -| ***** Settings ***** -| Library Process -| Suite Teardown `Terminate All Processes` kill=True -| -| ***** Test Cases ***** -| Example -| `Start Process` program arg1 arg2 alias=First -| ${handle} = `Start Process` command.sh arg | command2.sh shell=True cwd=/path -| ${result} = `Run Process` ${CURDIR}/script.py -| `Should Not Contain` ${result.stdout} FAIL -| `Terminate Process` ${handle} -| ${result} = `Wait For Process` First -| `Should Be Equal As Integers` ${result.rc} 0 - - -handle=None - -Returns the process ID (pid) of the process as an integer. - -If ``handle`` is not given, uses the current `active process`. - -Notice that the pid is not the same as the handle returned by -`Start Process` that is used internally by this library. - - - - - -handle=None - -Return the underlying ``subprocess.Popen`` object. - -If ``handle`` is not given, uses the current `active process`. - - - - - -handle=None -rc=False -stdout=False -stderr=False -stdout_path=False -stderr_path=False - -Returns the specified `result object` or some of its attributes. - -The given ``handle`` specifies the process whose results should be -returned. If no ``handle`` is given, results of the current `active -process` are returned. In either case, the process must have been -finishes before this keyword can be used. In practice this means -that processes started with `Start Process` must be finished either -with `Wait For Process` or `Terminate Process` before using this -keyword. - -If no other arguments than the optional ``handle`` are given, a whole -`result object` is returned. If one or more of the other arguments -are given any true value, only the specified attributes of the -`result object` are returned. These attributes are always returned -in the same order as arguments are specified in the keyword signature. -See `Boolean arguments` section for more details about true and false -values. - -Examples: -| Run Process | python | -c | print 'Hello, world!' | alias=myproc | -| # Get result object | | | -| ${result} = | Get Process Result | myproc | -| Should Be Equal | ${result.rc} | ${0} | -| Should Be Equal | ${result.stdout} | Hello, world! | -| Should Be Empty | ${result.stderr} | | -| # Get one attribute | | | -| ${stdout} = | Get Process Result | myproc | stdout=true | -| Should Be Equal | ${stdout} | Hello, world! | -| # Multiple attributes | | | -| ${stdout} | ${stderr} = | Get Process Result | myproc | stdout=yes | stderr=yes | -| Should Be Equal | ${stdout} | Hello, world! | -| Should Be Empty | ${stderr} | | - -Although getting results of a previously executed process can be handy -in general, the main use case for this keyword is returning results -over the remote library interface. The remote interface does not -support returning the whole result object, but individual attributes -can be returned without problems. - - - - - -handle=None - -Checks is the process running or not. - -If ``handle`` is not given, uses the current `active process`. - -Returns ``True`` if the process is still running and ``False`` otherwise. - - - - - -*args - -Joins arguments into one command line string. - -In resulting command line string arguments are delimited with a space, -arguments containing spaces are surrounded with quotes, and possible -quotes are escaped with a backslash. - -If this keyword is given only one argument and that is a list like -object, then the values of that list are joined instead. - -Example: -| ${cmd} = | Join Command Line | --option | value with spaces | -| Should Be Equal | ${cmd} | --option "value with spaces" | - -New in Robot Framework 2.9.2. - - - - - -handle=None -error_message=Process is not running. - -Verifies that the process is running. - -If ``handle`` is not given, uses the current `active process`. - -Fails if the process has stopped. - - - - - -handle=None -error_message=Process is running. - -Verifies that the process is not running. - -If ``handle`` is not given, uses the current `active process`. - -Fails if the process is still running. - - - - - -command -*arguments -**configuration - -Runs a process and waits for it to complete. - -``command`` and ``*arguments`` specify the command to execute and -arguments passed to it. See `Specifying command and arguments` for -more details. - -``**configuration`` contains additional configuration related to -starting processes and waiting for them to finish. See `Process -configuration` for more details about configuration related to starting -processes. Configuration related to waiting for processes consists of -``timeout`` and ``on_timeout`` arguments that have same semantics as -with `Wait For Process` keyword. By default there is no timeout, and -if timeout is defined the default action on timeout is ``terminate``. - -Returns a `result object` containing information about the execution. - -Note that possible equal signs in ``*arguments`` must be escaped -with a backslash (e.g. ``name\=value``) to avoid them to be passed in -as ``**configuration``. - -Examples: -| ${result} = | Run Process | python | -c | print 'Hello, world!' | -| Should Be Equal | ${result.stdout} | Hello, world! | -| ${result} = | Run Process | ${command} | stderr=STDOUT | timeout=10s | -| ${result} = | Run Process | ${command} | timeout=1min | on_timeout=continue | -| ${result} = | Run Process | java -Dname\=value Example | shell=True | cwd=${EXAMPLE} | - -This keyword does not change the `active process`. - - - - - -signal -handle=None -group=False - -Sends the given ``signal`` to the specified process. - -If ``handle`` is not given, uses the current `active process`. - -Signal can be specified either as an integer as a signal name. In the -latter case it is possible to give the name both with or without ``SIG`` -prefix, but names are case-sensitive. For example, all the examples -below send signal ``INT (2)``: - -| Send Signal To Process | 2 | | # Send to active process | -| Send Signal To Process | INT | | | -| Send Signal To Process | SIGINT | myproc | # Send to named process | - -This keyword is only supported on Unix-like machines, not on Windows. -What signals are supported depends on the system. For a list of -existing signals on your system, see the Unix man pages related to -signal handling (typically ``man signal`` or ``man 7 signal``). - -By default sends the signal only to the parent process, not to possible -child processes started by it. Notice that when `running processes in -shell`, the shell is the parent process and it depends on the system -does the shell propagate the signal to the actual started process. - -To send the signal to the whole process group, ``group`` argument can -be set to any true value (see `Boolean arguments`). This is not -supported by Jython, however. - - - - - -args -escaping=False - -Splits command line string into a list of arguments. - -String is split from spaces, but argument surrounded in quotes may -contain spaces in them. If ``escaping`` is given a true value, then -backslash is treated as an escape character. It can escape unquoted -spaces, quotes inside quotes, and so on, but it also requires using -double backslashes when using Windows paths. - -Examples: -| @{cmd} = | Split Command Line | --option "value with spaces" | -| Should Be True | $cmd == ['--option', 'value with spaces'] | - -New in Robot Framework 2.9.2. - - - - - -command -*arguments -**configuration - -Starts a new process on background. - -See `Specifying command and arguments` and `Process configuration` -for more information about the arguments, and `Run Process` keyword -for related examples. - -Makes the started process new `active process`. Returns an identifier -that can be used as a handle to activate the started process if needed. - -Processes are started so that they create a new process group. This -allows sending signals to and terminating also possible child -processes. This is not supported on Jython. - - - - - -handle - -Makes the specified process the current `active process`. - -The handle can be an identifier returned by `Start Process` or -the ``alias`` given to it explicitly. - -Example: -| Start Process | prog1 | alias=process1 | -| Start Process | prog2 | alias=process2 | -| # currently active process is process2 | -| Switch Process | process1 | -| # now active process is process1 | - - - - - -kill=False - -Terminates all still running processes started by this library. - -This keyword can be used in suite teardown or elsewhere to make -sure that all processes are stopped, - -By default tries to terminate processes gracefully, but can be -configured to forcefully kill them immediately. See `Terminate Process` -that this keyword uses internally for more details. - - - - - -handle=None -kill=False - -Stops the process gracefully or forcefully. - -If ``handle`` is not given, uses the current `active process`. - -By default first tries to stop the process gracefully. If the process -does not stop in 30 seconds, or ``kill`` argument is given a true value, -(see `Boolean arguments`) kills the process forcefully. Stops also all -the child processes of the originally started process. - -Waits for the process to stop after terminating it. Returns a `result -object` containing information about the execution similarly as `Wait -For Process`. - -On Unix-like machines graceful termination is done using ``TERM (15)`` -signal and killing using ``KILL (9)``. Use `Send Signal To Process` -instead if you just want to send either of these signals without -waiting for the process to stop. - -On Windows graceful termination is done using ``CTRL_BREAK_EVENT`` -event and killing using Win32 API function ``TerminateProcess()``. - -Examples: -| ${result} = | Terminate Process | | -| Should Be Equal As Integers | ${result.rc} | -15 | # On Unixes | -| Terminate Process | myproc | kill=true | - -Limitations: -- Graceful termination is not supported on Windows when using Jython. - Process is killed instead. -- Stopping the whole process group is not supported when using Jython. -- On Windows forceful kill only stops the main process, not possible - child processes. - - - - - -handle=None -timeout=None -on_timeout=continue - -Waits for the process to complete or to reach the given timeout. - -The process to wait for must have been started earlier with -`Start Process`. If ``handle`` is not given, uses the current -`active process`. - -``timeout`` defines the maximum time to wait for the process. It can be -given in -[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#time-format| -various time formats] supported by Robot Framework, for example, ``42``, -``42 s``, or ``1 minute 30 seconds``. - -``on_timeout`` defines what to do if the timeout occurs. Possible values -and corresponding actions are explained in the table below. Notice -that reaching the timeout never fails the test. - -| = Value = | = Action = | -| continue | The process is left running (default). | -| terminate | The process is gracefully terminated. | -| kill | The process is forcefully stopped. | - -See `Terminate Process` keyword for more details how processes are -terminated and killed. - -If the process ends before the timeout or it is terminated or killed, -this keyword returns a `result object` containing information about -the execution. If the process is left running, Python ``None`` is -returned instead. - -Examples: -| # Process ends cleanly | | | -| ${result} = | Wait For Process | example | -| Process Should Be Stopped | example | | -| Should Be Equal As Integers | ${result.rc} | 0 | -| # Process does not end | | | -| ${result} = | Wait For Process | timeout=42 secs | -| Process Should Be Running | | | -| Should Be Equal | ${result} | ${NONE} | -| # Kill non-ending process | | | -| ${result} = | Wait For Process | timeout=1min 30s | on_timeout=kill | -| Process Should Be Stopped | | | -| Should Be Equal As Integers | ${result.rc} | -9 | - - - - diff --git a/libspecs/REST_04a9321.libspec b/libspecs/REST_04a9321.libspec deleted file mode 100644 index c4e9d3a37..000000000 --- a/libspecs/REST_04a9321.libspec +++ /dev/null @@ -1,999 +0,0 @@ - - - -test suite -yes -RESTinstance is revolutionary and peaceful HTTP JSON API test library. - -It guides you to write more stable API tests relying on constraints (e.g. "people's email addresses must be valid"), rather than on values having the nature of change (e.g "the first created user's email is expected to stay foo@bar.com"). - -It bases on observations that we are more often concerned whether and which properties changed, when they should (not) had as this signals a bug, and less often what the actual values were/are. This also helps in tackling tests failing only because the test environment data was (not) reset. - -These resolutions in mind, it walks the path with you to contract-driven testing, from automatically generated JSON Schema data models to having formal OpenAPI service specs, as the both are essentially of the same origin. Both are also supported by major forces (Google, Microsoft, IBM et al. founded OpenAPI Initiative), and are language-agnostic which goes as well with Robot Framework. - -Contracts represent a common language within software teams, recognising our differing talents as designers, developers and test experts; or perhaps your new business companion wants to integrate to the system as well, but there is still some noise in signal - yet you don't feel very content providing them the source code, let alone explaining technical details, like which JSON properties are must in the response body, over the phone. - -Rest your mind. OSS got your back. - - -= Tutorial = - -There is a [https://github.com/asyrjasalo/RESTinstance/blob/master/examples/README.rst|step-by-step tutorial] in the making on using the library. - -For RESTful APIs, this library is intended to be used so that a test suite -is dedicated per endpoint. The test suite is divided into test cases so that -the differing operations (implemented by the endpoint via HTTP methods) -are tested with separate test cases. - - -= The state = - -The library represents its own state as JSON itself, as an array of objects. -Together these objects are commonly called instances. - -A single instance always has these three properties: - -- Request data as a JSON object -- Response data as a JSON object -- JSON Schema for the above two properties - -For each request-response, as soon as the response has been gotten -(and the request did not timeout), a new instance is created with these -properties. - -Request and response schemas are inferred if they are not already -expected by using expectation keywords. All the validations the library -implements are based on JSON Schema [http://json-schema.org/draft-07/json-schema-validation.html|draft-07] by default -but also [http://json-schema.org/draft-06/json-schema-validation.html|draft-06] and -[http://json-schema.org/draft-04/json-schema-validation.html|draft-04] can be configured. - -= The scope = - -All the assertion keywords, `Output` and `Output Schema` are effective -in the scope of the last instance. - -The scope of the library itself is test suite, meaning the instances -are persisted in memory until the execution of the test suite is finished, -regardless whether successfully or not. - -The last request and response is easiest seen with `Output`. -The output is written to terminal by default, as this is usually faster -for debugging purposes than finding the right keyword in ``log.html``. - -All instances can be output to a file with `RESTinstances` which can -be useful for additional logging. - - -url=None -ssl_verify=True -accept=application/json, */* -content_type=application/json -user_agent=RESTinstance/1.0.0rc4 -proxies={} -schema={} -spec={} -instances=[] - -Initialize self. See help(type(self)) for accurate signature. - - - - - -field -*enum -**validations - -*Asserts the field as JSON array.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], -the root being the response body. - -*Enum* - -The allowed values for the property as zero or more arguments. -If none given, the value of the property is not asserted. - -*Validations* - -The JSON Schema validation keywords -[https://json-schema.org/understanding-json-schema/reference/array.html|for array] -can be used. Validations are optional but update the schema of -the property (more accurate) if given. -`Output Schema` can be used for the current schema of the field. - -The keyword will fail if any of the given validations fail. -Given validations can be skipped altogether by adding ``skip=true``. -When skipped, the schema is updated but the validations are not ran. -Skip is intented mainly for debugging the updated schema before aborting. - -*Examples* -| `GET` | /users?_limit=10 | | | | # https://jsonplaceholder.typicode.com/users | -| `Array` | response body | | | -| `Array` | $ | | | | # same as above | -| `Array` | $ | minItems=1 | maxItems=10 | uniqueItems=true | - -assertions - - - - -field -value=None -**validations - -*Asserts the field as JSON boolean.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], the root being the response body. - -*Value* - -If given, the property value is validated in addition to the type. - -*Validations* - -The JSON Schema validation keywords -[https://json-schema.org/understanding-json-schema/reference/generic.html|common for all types] -can be used. Validations are optional but update the schema of -the property (more accurate) if given. -`Output Schema` can be used for the current schema of the field. - -The keyword will fail if any of the given validations fail. -Given validations can be skipped altogether by adding ``skip=true``. -When skipped, the schema is updated but the validations are not ran. -Skip is intented mainly for debugging the updated schema before aborting. - -*Examples* - -| `PUT` | /users/1 | { "verified_email": true } | | | # https://jsonplaceholder.typicode.com/users/1 | -| `Boolean` | response body verified_email | | | | # value is optional | -| `Boolean` | response body verified_email | true | -| `Boolean` | response body verified_email | ${True} | | | # same as above | -| `Boolean` | $.verified_email | true | | | # JSONPath alternative | -| `Boolean` | $.verified_email | true | enum=[1, "1"] | skip=true | # would pass | - -assertions - - - - - -*Resets the expectations for both request and response.* - -Using this keyword resets any expectations set with keywords -`Expect Response`, `Expect Response Body` and `Expect Request`. - -expectations - - - - -endpoint -timeout=None -allow_redirects=None -validate=True -headers=None - -*Sends a DELETE request to the endpoint.* - -The endpoint is joined with the URL given on library init (if any). -If endpoint starts with ``http://`` or ``https://``, it is assumed -an URL outside the tested API (which may affect logging). - -*Options* - -``timeout``: A number of seconds to wait for the response before failing the keyword. - -``allow_redirects``: If false, do not follow any redirects. - -``validate``: If false, skips any request and response validations set -by expectation keywords and a spec given on library init. - -``headers``: Headers as a JSON object to add or override for the request. - -*Examples* - -| `DELETE` | /users/6 | -| `DELETE` | http://localhost:8273/state | validate=false | - -http - - - - -schema -merge=False - -*Sets the schema to validate the request properties* - -Expectations are effective for following requests in the test suite, -or until they are reset or updated by using expectation keywords again. -On the test suite level (suite setup), they are best used for expecting -the endpoint wide properties that are common regardless of the tested -HTTP method, and on the test case level (test setup) to merge in -the HTTP method specific properties. - -`Expect Request` is intented to be used with tests that have some of the -request properties, e.g. body or query parameters, randomized ("fuzzing") -for validating that the sent values are within the expected scope. - -If the keyword is used, following HTTP keywords will fail when -their request properties are not valid against the expected schema. - -If the keyword is not used, a new schema is generated for each following -request for its ``body`` and ``query`` properties. Use `Output Schema` to output it and use it as an input to this keyword. - -*Options* - -``merge``: Merges the new schema with the current instead of replacing it - -*Examples* - -| `Expect Request` | ${CURDIR}/valid_payload.json | | # See `Output Schema` | -| `Expect Request` | { "body": { "required": ["id"] } } | merge=true | - -expectations - - - - -schema -merge=False - -*Sets the schema to validate the response properties.* - -Expectations are effective for following requests in the test suite, -or until they are reset or updated by using expectation keywords again. -On the test suite level (suite setup), they are best used for expecting -the endpoint wide properties that are common regardless of the tested -HTTP method, and on the test case level (test setup) to merge in -the HTTP method specific properties. - -`Expect Response` is intented to be used on the suite level to validate -the endpoint properties that hold regardless of the HTTP method, -such as body property types, responded headers, authentication, etc. - -If the keyword is used, following HTTP keywords will fail when -their response properties are not valid against the expected schema. - -If the keyword is not used, a new schema is inferred for each following -response for its ``body``. Use `Output Schema` to output it and use it -as an input to this keyword. - -*Options* - -``merge``: Merges the new schema with the current instead of replacing it - -*Examples* - -| `Expect Response` | ${CURDIR}/endpoint_data_model.json | | # See `Output Schema` | -| `Expect Response` | { "headers": { "required": ["Via"] } } | merge=true | -| `Expect Response` | { "seconds": { "maximum": "1.0" } } | merge=true | - -expectations - - - - -schema - -*Updates the schema to validate the response body properties.* - -Expectations are effective for following requests in the test suite, -or until they are reset or updated by using expectation keywords again. -On the test suite level (suite setup), they are best used for expecting -the endpoint wide properties that are common regardless of the tested -HTTP method, and on the test case level (test setup) to merge in -the HTTP method specific properties. - -`Expect Response Body` is intented to be used on the test case level, -to validate that the response body has the expected properties for -the particular HTTP method. Note that if something about response body -has been already expected with `Expected Response`, using this keyword -updates the expectations in terms of given response body properties. - -If the keyword is used, following HTTP keywords will fail if -their response body is not valid against the expected schema. - -If the keyword is not used, and no schema is already expected with -`Expect Response` for response ``body``, a new schema is inferred for it. -Use `Output Schema` to output it and use it as an input to this keyword. - -*Tips* - -Regardless whether the HTTP method returns one (an object) or many -(an array of objects), the validation of the object property types and features can usually be done to some extent on the test suite level -with `Expect Response`, then extended on the test case level using this -keyword. This helps in ensuring that the data model is unified between -the different HTTP methods. - -*Examples* - -| `Expect Response Body` | ${CURDIR}/user_properties.json | # See `Output Schema` | -| `Expect Response Body` | { "required": ["id", "token"] } | # Only these are required from this method | -| `Expect Response Body` | { "additionalProperties": false } | # Nothing extra should be responded by this method | - -expectations - - - - -endpoint -query=None -timeout=None -allow_redirects=None -validate=True -headers=None - -*Sends a GET request to the endpoint.* - -The endpoint is joined with the URL given on library init (if any). -If endpoint starts with ``http://`` or ``https://``, it is assumed -an URL outside the tested API (which may affect logging). - -*Options* - -``query``: Request query parameters as a JSON object or a dictionary. -Alternatively, query parameters can be given as part of endpoint as well. - -``timeout``: A number of seconds to wait for the response before failing the keyword. - -``allow_redirects``: If false, do not follow any redirects. - -``validate``: If false, skips any request and response validations set -by expectation keywords and a spec given on library init. - -``headers``: Headers as a JSON object to add or override for the request. - -*Examples* - -| `GET` | /users/1 | -| `GET` | /users | timeout=2.5 | -| `GET` | /users?_limit=2 | -| `GET` | /users | _limit=2 | -| `GET` | /users | { "_limit": "2" } | -| `GET` | https://jsonplaceholder.typicode.com/users | headers={ "Authentication": "" } | - -http - - - - -endpoint -timeout=None -allow_redirects=None -validate=True -headers=None - -*Sends a HEAD request to the endpoint.* - -The endpoint is joined with the URL given on library init (if any). -If endpoint starts with ``http://`` or ``https://``, it is assumed -an URL outside the tested API (which may affect logging). - -*Options* - -``timeout``: A number of seconds to wait for the response before failing the keyword. - -``allow_redirects``: If true, follow all redirects. -In contrary to other methods, no HEAD redirects are followed by default. - -``validate``: If false, skips any request and response validations set -by expectation keywords and a spec given on library init. - -``headers``: The headers to add or override for this request. - -*Examples* - -| `HEAD` | /users/1 | -| `HEAD` | /users/1 | timeout=0.5 | - -http - - - - -what - -*Converts the input to JSON and returns it.* - -Any of the following is accepted: - -- The path to JSON file -- Any scalar that can be interpreted as JSON -- A dictionary or a list - -*Examples* - -| ${payload} | `Input` | ${CURDIR}/payload.json | - -| ${object} | `Input` | { "name": "Julie Langford", "username": "jlangfor" } | -| ${object} | `Input` | ${dict} | - -| ${array} | `Input` | ["name", "username"] | -| ${array} | `Input` | ${list} | - -| ${boolean} | `Input` | true | -| ${boolean} | `Input` | ${True} | - -| ${number} | `Input` | 2.0 | -| ${number} | `Input` | ${2.0} | - -| ${string} | `Input` | Quotes are optional for strings | - -I/O - - - - -field -*enum -**validations - -*Asserts the field as JSON integer.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], -the root being the response body. - -*Enum* - -The allowed values for the property as zero or more arguments. -If none given, the value of the property is not asserted. - -*Validations* - -The JSON Schema validation keywords -[https://json-schema.org/understanding-json-schema/reference/numeric.html#integer|for numeric types] -can be used. Validations are optional but update the schema of -the property (more accurate) if given. -`Output Schema` can be used for the current schema of the field. - -The keyword will fail if any of the given validations fail. -Given validations can be skipped altogether by adding ``skip=true``. -When skipped, the schema is updated but the validations are not ran. -Skip is intented mainly for debugging the updated schema before aborting. - -*Examples* - -| `GET` | /users/1 | | # https://jsonplaceholder.typicode.com/users/1 | -| `Integer` | response body id | | # value is optional | -| `Integer` | response body id | 1 | -| `Integer` | response body id | ${1} | # same as above | -| `Integer` | $.id | 1 | # JSONPath alternative | - -| `GET` | /users?_limit=10 | | | | # https://jsonplaceholder.typicode.com/users | -| `Integer` | response body 0 id | 1 | | | -| `Integer` | $[0].id | 1 | | | # same as above | -| `Integer` | $[*].id | | minimum=1 | maximum=10 | - -assertions - - - - -field - -*Asserts the field does not exist.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], -the root being the response body. - -*Examples* - -| `GET` | /users/1 | # https://jsonplaceholder.typicode.com/users/1 | -| `Missing` | response body password | -| `Missing` | $.password | -| `Missing` | $..geo.elevation | # response body address geo elevation | - -| `GET` | /users | # https://jsonplaceholder.typicode.com/users | -| `Missing` | response body 0 password | -| `Missing` | $[*].password | -| `Missing` | $[*]..geo.elevation | - -assertions - - - - -field -**validations - -*Asserts the field as JSON null.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], -the root being the response body. - -*Validations* - -The JSON Schema validation keywords -[https://json-schema.org/understanding-json-schema/reference/generic.html|common for all types] -can be used. Validations are optional but update the schema of -the property (more accurate) if given. -`Output Schema` can be used for the current schema of the field. - -The keyword will fail if any of the given validations fail. -Given validations can be skipped altogether by adding ``skip=true``. -When skipped, the schema is updated but the validations are not ran. -Skip is intented mainly for debugging the updated schema before aborting. - -*Examples* - -| `PUT` | /users/1 | { "deactivated_at": null } | # https://jsonplaceholder.typicode.com/users/1 | -| `Null` | response body deactivated_at | | -| `Null` | $.deactivated_at | | # JSONPath alternative | - -assertions - - - - -field -*enum -**validations - -*Asserts the field as JSON number.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], -the root being the response body. - -*Enum* - -The allowed values for the property as zero or more arguments. -If none given, the value of the property is not asserted. - -*Validations* - -The JSON Schema validation keywords -[https://json-schema.org/understanding-json-schema/reference/numeric.html#number|for numeric types] can be used. Validations are optional but update the schema of -the property (more accurate) if given. -`Output Schema` can be used for the current schema of the field. - -The keyword will fail if any of the given validations fail. -Given validations can be skipped altogether by adding ``skip=true``. -When skipped, the schema is updated but the validations are not ran. -Skip is intented mainly for debugging the updated schema before aborting. - -*Examples* - -| `PUT` | /users/1 | { "allocation": 95.0 } | # https://jsonplaceholder.typicode.com/users/1 | -| `Number` | response body allocation | | # value is optional | -| `Number` | response body allocation | 95.0 | -| `Number` | response body allocation | ${95.0} | # same as above | -| `Number` | $.allocation | 95.0 | # JSONPath alternative | - -| `GET` | /users?_limit=10 | | | | # https://jsonplaceholder.typicode.com/users | -| `Number` | $[0].id | 1 | | | # integers are also numbers | -| `Number` | $[*].id | | minimum=1 | maximum=10 | - -assertions - - - - -field -*enum -**validations - -*Asserts the field as JSON object.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], the root being the response body. - -*Enum* - -The allowed values for the property as zero or more arguments. -If none given, the value of the property is not asserted. - -*Validations* - -The JSON Schema validation keywords -[https://json-schema.org/understanding-json-schema/reference/object.html|for object] -can be used. Validations are optional but update the schema of -the property (more accurate) if given. -`Output Schema` can be used for the current schema of the field. - -The keyword will fail if any of the given validations fail. -Given validations can be skipped altogether by adding ``skip=true``. -When skipped, the schema is updated but the validations are not ran. -Skip is intented mainly for debugging the updated schema before aborting. - -*Examples* - -| `GET` | /users/1 | | # https://jsonplaceholder.typicode.com/users/1 | -| `Object` | response body | | -| `Object` | response body | required=["id", "name"] | # can have other properties | - -| `GET` | /users/1 | | # https://jsonplaceholder.typicode.com/users/1 | -| `Object` | $.address.geo | required=["lat", "lng"] | -| `Object` | $..geo | additionalProperties=false | # cannot have other properties | - -assertions - - - - -endpoint -timeout=None -allow_redirects=None -validate=True -headers=None - -*Sends an OPTIONS request to the endpoint.* - -The endpoint is joined with the URL given on library init (if any). -If endpoint starts with ``http://`` or ``https://``, it is assumed -an URL outside the tested API (which may affect logging). - -*Options* - -``timeout``: A number of seconds to wait for the response before failing the keyword. - -``allow_redirects``: If false, do not follow any redirects. - -``validate``: If false, skips any request and response validations set -by expectation keywords and a spec given on library init. - -``headers``: Headers as a JSON object to add or override for the request. - -*Examples* - -| `OPTIONS` | /users/1 | -| `OPTIONS` | /users/1 | allow_redirects=false | - -http - - - - -what= -file_path=None -append=False -sort_keys=False - -*Outputs JSON to terminal or a file.* - -By default, the last request and response are output to terminal. - -The output can be limited further by: - -- The property of the last instance, e.g. ``request`` or ``response`` -- Any nested property that exists, similarly as for assertion keywords - -Also variables and values that can be converted to JSON are accepted, -in which case those are output as JSON instead. - -*Options* - -``file_path``: The JSON is written to a file instead of terminal. -The file is created if it does not exist. - -``append``: If true, the JSON is appended to the given file -instead of truncating it first. - -``sort_keys``: If true, the JSON is sorted alphabetically by -property names before it is output. - -*Examples* - -| `Output` | response | # only the response is output | -| `Output` | response body | # only the response body is output | -| `Output` | $.email | # only the response body property is output | -| `Output` | $..geo | # only the nested response body property is output | - -| `Output` | request | # only the request is output | -| `Output` | request headers | # only the request headers are output | -| `Output` | request headers Authentication | # only this header is output | - -| `Output` | response body | ${CURDIR}/response_body.json | | # write the response body to a file | -| `Output` | response seconds | ${CURDIR}/response_delays.log | append=true | # keep track of response delays in a file | - -I/O - - - - -what= -file_path=None -append=False -sort_keys=False - -*Outputs JSON Schema to terminal or a file.* - -By default, the schema is output for the last request and response. - -The output can be limited further by: - -- The property of the last instance, e.g. ``request`` or ``response`` -- Any nested property that exists, similarly as for assertion keywords - -Also variables and values that can be converted to JSON are accepted, -in which case the schema is generated for those instead. - -*Options* - -``file_path``: The JSON Schema is written to a file instead of terminal. -The file is created if it does not exist. - -``append``: If true, the JSON Schema is appended to the given file -instead of truncating it first. - -``sort_keys``: If true, the JSON Schema is sorted alphabetically by -property names before it is output. - -*Examples* - -| `Output Schema` | response | ${CURDIR}/response_schema.json | # Write a file to use with `Expect Response` | -| `Output Schema` | response body | ${CURDIR}/response_body_schema.json | # Write a file to use with `Expect Response Body` | - -| `Output Schema` | $.email | # only the schema for one response body property | -| `Output Schema` | $..geo | # only the schema for the nested response body property | - -I/O - - - - -endpoint -body=None -timeout=None -allow_redirects=None -validate=True -headers=None - -*Sends a PATCH request to the endpoint.* - -The endpoint is joined with the URL given on library init (if any). -If endpoint starts with ``http://`` or ``https://``, it is assumed -an URL outside the tested API (which may affect logging). - -*Options* - -``body``: Request body parameters as a JSON object, file or a dictionary. - -``timeout``: A number of seconds to wait for the response before failing the keyword. - -``allow_redirects``: If false, do not follow any redirects. - -``validate``: If false, skips any request and response validations set -by expectation keywords and a spec given on library init. - -``headers``: Headers as a JSON object to add or override for the request. - -*Examples* - -| `PATCH` | /users/4 | { "name": "Clementine Bauch" } | -| `PATCH` | /users/4 | ${dict} | - -http - - - - -endpoint -body=None -timeout=None -allow_redirects=None -validate=True -headers=None - -*Sends a POST request to the endpoint.* - -The endpoint is joined with the URL given on library init (if any). -If endpoint starts with ``http://`` or ``https://``, it is assumed -an URL outside the tested API (which may affect logging). - -*Options* - -``body``: Request body parameters as a JSON object, file or a dictionary. - -``timeout``: A number of seconds to wait for the response before failing the keyword. - -``allow_redirects``: If false, do not follow any redirects. - -``validate``: If false, skips any request and response validations set -by expectation keywords and a spec given on library init. - -``headers``: Headers as a JSON object to add or override for the request. - -*Examples* - -| `POST` | /users | { "id": 11, "name": "Gil Alexander" } | -| `POST` | /users | ${CURDIR}/new_user.json | - -http - - - - -endpoint -body=None -timeout=None -allow_redirects=None -validate=True -headers=None - -*Sends a PUT request to the endpoint.* - -The endpoint is joined with the URL given on library init (if any). -If endpoint starts with ``http://`` or ``https://``, it is assumed -an URL outside the tested API (which may affect logging). - -*Options* - -``body``: Request body parameters as a JSON object, file or a dictionary. - -``timeout``: A number of seconds to wait for the response before failing the keyword. - -``allow_redirects``: If false, do not follow any redirects. - -``validate``: If false, skips any request and response validations set -by expectation keywords and a spec given on library init. - -``headers``: Headers as a JSON object to add or override for the request. - -*Examples* - -| `PUT` | /users/2 | { "name": "Julie Langford", "username": "jlangfor" } | -| `PUT` | /users/2 | ${dict} | - -http - - - - -file_path=None -sort_keys=False - -*Writes the instances as JSON to a file.* - -The instances are written to file as a JSON array of JSON objects, -each object representing a single instance, and having three properties: - -- the request -- the response -- the schema for both, which have been updated according to the tests - -The file is created if it does not exist, otherwise it is truncated. - -*Options* - -``sort_keys``: If true, the instances are sorted alphabetically by -property names. - -*Examples* - -| `Rest Instances` | ${CURDIR}/log.json | - -I/O - - - - -cert - -*Sets the client cert for the requests.* - -The cert is either a path to a .pem file, or a JSON array, or a list -having the cert path and the key path. - -Values ``null`` and ``${None}`` can be used for clearing the cert. - -*Examples* - -| `Set Client Cert` | ${CURDIR}/client.pem | -| `Set Client Cert` | ["${CURDIR}/client.cert", "${CURDIR}/client.key"] | -| `Set Client Cert` | ${paths_list} | - -settings - - - - -headers - -*Sets new request headers or updates the existing.* - -``headers``: The headers to add or update as a JSON object or a -dictionary. - -*Examples* - -| `Set Headers` | { "authorization": "Basic QWxhZGRpbjpPcGVuU2VzYW1"} | -| `Set Headers` | { "Accept-Encoding": "identity"} | -| `Set Headers` | ${auth_dict} | - -settings - - - - -field -*enum -**validations - -*Asserts the field as JSON string.* - -The field consists of parts separated by spaces, the parts being -object property names or array indices starting from 0, and the root -being the instance created by the last request (see `Output` for it). - -For asserting deeply nested properties or multiple objects at once, -[http://goessner.net/articles/JsonPath|JSONPath] can be used with -[https://github.com/h2non/jsonpath-ng#jsonpath-syntax|supported JSONPath expressions], the root being the response body. - -*Enum* - -The allowed values for the property as zero or more arguments. -If none given, the value of the property is not asserted. - -*Validations* - -The JSON Schema validation keywords -[https://json-schema.org/understanding-json-schema/reference/string.html|for string] -can be used. Validations are optional but update the schema of -the property (more accurate) if given. -`Output Schema` can be used for the current schema of the field. - -The keyword will fail if any of the given validations fail. -Given validations can be skipped altogether by adding ``skip=true``. -When skipped, the schema is updated but the validations are not ran. -Skip is intented mainly for debugging the updated schema before aborting. - -*Examples* - -| `GET` | /users/1 | | | # https://jsonplaceholder.typicode.com/users/1 | -| `String` | response body email | | | # value is optional | -| `String` | response body email | Sincere@april.biz | -| `String` | $.email | Sincere@april.biz | | # JSONPath alternative | -| `String` | $.email | | format=email | - -| `GET` | /users?_limit=10 | | | # https://jsonplaceholder.typicode.com/users | -| `String` | response body 0 email | Sincere@april.biz | -| `String` | $[0].email | Sincere@april.biz | | # same as above | -| `String` | $[*].email | | format=email | - -assertions - - - diff --git a/libspecs/Reserved.libspec b/libspecs/Reserved.libspec deleted file mode 100644 index 54f85645e..000000000 --- a/libspecs/Reserved.libspec +++ /dev/null @@ -1,87 +0,0 @@ - - - -global -yes -Documentation for library ``Reserved``. - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - - -*varargs - - - - - - diff --git a/libspecs/Screenshot.libspec b/libspecs/Screenshot.libspec deleted file mode 100644 index 5703b5b9e..000000000 --- a/libspecs/Screenshot.libspec +++ /dev/null @@ -1,132 +0,0 @@ - - -3.1 -test suite -yes -Test library for taking screenshots on the machine where tests are run. - -Notice that successfully taking screenshots requires tests to be run with -a physical or virtual display. - -= Using with Python = - -How screenshots are taken when using Python depends on the operating -system. On OSX screenshots are taken using the built-in ``screencapture`` -utility. On other operating systems you need to have one of the following -tools or Python modules installed. You can specify the tool/module to use -when `importing` the library. If no tool or module is specified, the first -one found will be used. - -- wxPython :: http://wxpython.org :: Required also by RIDE so many Robot - Framework users already have this module installed. -- PyGTK :: http://pygtk.org :: This module is available by default on most - Linux distributions. -- Pillow :: http://python-pillow.github.io :: - Only works on Windows. Also the original PIL package is supported. -- Scrot :: http://en.wikipedia.org/wiki/Scrot :: Not used on Windows. - Install with ``apt-get install scrot`` or similar. - -Using ``screencapture`` on OSX and specifying explicit screenshot module -are new in Robot Framework 2.9.2. The support for using ``scrot`` is new -in Robot Framework 3.0. - -= Using with Jython and IronPython = - -With Jython and IronPython this library uses APIs provided by JVM and .NET -platforms, respectively. These APIs are always available and thus no -external modules are needed. - -= Where screenshots are saved = - -By default screenshots are saved into the same directory where the Robot -Framework log file is written. If no log is created, screenshots are saved -into the directory where the XML output file is written. - -It is possible to specify a custom location for screenshots using -``screenshot_directory`` argument when `importing` the library and -using `Set Screenshot Directory` keyword during execution. It is also -possible to save screenshots using an absolute path. - - -screenshot_directory=None -screenshot_module=None - -Configure where screenshots are saved. - -If ``screenshot_directory`` is not given, screenshots are saved into -same directory as the log file. The directory can also be set using -`Set Screenshot Directory` keyword. - -``screenshot_module`` specifies the module or tool to use when using -this library on Python outside OSX. Possible values are ``wxPython``, -``PyGTK``, ``PIL`` and ``scrot``, case-insensitively. If no value is -given, the first module/tool found is used in that order. See `Using -with Python` for more information. - -Examples (use only one of these): -| =Setting= | =Value= | =Value= | -| Library | Screenshot | | -| Library | Screenshot | ${TEMPDIR} | -| Library | Screenshot | screenshot_module=PyGTK | - -Specifying explicit screenshot module is new in Robot Framework 2.9.2. - - - - - -path - -Sets the directory where screenshots are saved. - -It is possible to use ``/`` as a path separator in all operating -systems. Path to the old directory is returned. - -The directory can also be set in `importing`. - - - - - -name=screenshot -width=800px - -Takes a screenshot in JPEG format and embeds it into the log file. - -Name of the file where the screenshot is stored is derived from the -given ``name``. If the ``name`` ends with extension ``.jpg`` or -``.jpeg``, the screenshot will be stored with that exact name. -Otherwise a unique name is created by adding an underscore, a running -index and an extension to the ``name``. - -The name will be interpreted to be relative to the directory where -the log file is written. It is also possible to use absolute paths. -Using ``/`` as a path separator works in all operating systems. - -``width`` specifies the size of the screenshot in the log file. - -Examples: (LOGDIR is determined automatically by the library) -| Take Screenshot | | | # LOGDIR/screenshot_1.jpg (index automatically incremented) | -| Take Screenshot | mypic | | # LOGDIR/mypic_1.jpg (index automatically incremented) | -| Take Screenshot | ${TEMPDIR}/mypic | | # /tmp/mypic_1.jpg (index automatically incremented) | -| Take Screenshot | pic.jpg | | # LOGDIR/pic.jpg (always uses this file) | -| Take Screenshot | images/login.jpg | 80% | # Specify both name and width. | -| Take Screenshot | width=550px | | # Specify only width. | - -The path where the screenshot is saved is returned. - - - - - -name=screenshot - -Takes a screenshot and links it from the log file. - -This keyword is otherwise identical to `Take Screenshot` but the saved -screenshot is not embedded into the log file. The screenshot is linked -so it is nevertheless easily available. - - - - diff --git a/libspecs/String.libspec b/libspecs/String.libspec deleted file mode 100644 index f82c78ea9..000000000 --- a/libspecs/String.libspec +++ /dev/null @@ -1,722 +0,0 @@ - - -3.1 -global -yes -A test library for string manipulation and verification. - -``String`` is Robot Framework's standard library for manipulating -strings (e.g. `Replace String Using Regexp`, `Split To Lines`) and -verifying their contents (e.g. `Should Be String`). - -Following keywords from ``BuiltIn`` library can also be used with strings: - -- `Catenate` -- `Get Length` -- `Length Should Be` -- `Should (Not) Be Empty` -- `Should (Not) Be Equal (As Strings/Integers/Numbers)` -- `Should (Not) Match (Regexp)` -- `Should (Not) Contain` -- `Should (Not) Start With` -- `Should (Not) End With` -- `Convert To String` -- `Convert To Bytes` - - -string - -Converts string to lowercase. - -Examples: -| ${str1} = | Convert To Lowercase | ABC | -| ${str2} = | Convert To Lowercase | 1A2c3D | -| Should Be Equal | ${str1} | abc | -| Should Be Equal | ${str2} | 1a2c3d | - - - - - -string - -Converts string to uppercase. - -Examples: -| ${str1} = | Convert To Uppercase | abc | -| ${str2} = | Convert To Uppercase | 1a2C3d | -| Should Be Equal | ${str1} | ABC | -| Should Be Equal | ${str2} | 1A2C3D | - - - - - -bytes -encoding -errors=strict - -Decodes the given ``bytes`` to a Unicode string using the given ``encoding``. - -``errors`` argument controls what to do if decoding some bytes fails. -All values accepted by ``decode`` method in Python are valid, but in -practice the following values are most useful: - -- ``strict``: fail if characters cannot be decoded (default) -- ``ignore``: ignore characters that cannot be decoded -- ``replace``: replace characters that cannot be decoded with - a replacement character - -Examples: -| ${string} = | Decode Bytes To String | ${bytes} | UTF-8 | -| ${string} = | Decode Bytes To String | ${bytes} | ASCII | errors=ignore | - -Use `Encode String To Bytes` if you need to convert Unicode strings to -byte strings, and `Convert To String` in ``BuiltIn`` if you need to -convert arbitrary objects to Unicode strings. - - - - - -string -encoding -errors=strict - -Encodes the given Unicode ``string`` to bytes using the given ``encoding``. - -``errors`` argument controls what to do if encoding some characters fails. -All values accepted by ``encode`` method in Python are valid, but in -practice the following values are most useful: - -- ``strict``: fail if characters cannot be encoded (default) -- ``ignore``: ignore characters that cannot be encoded -- ``replace``: replace characters that cannot be encoded with - a replacement character - -Examples: -| ${bytes} = | Encode String To Bytes | ${string} | UTF-8 | -| ${bytes} = | Encode String To Bytes | ${string} | ASCII | errors=ignore | - -Use `Convert To Bytes` in ``BuiltIn`` if you want to create bytes based -on character or integer sequences. Use `Decode Bytes To String` if you -need to convert byte strings to Unicode strings and `Convert To String` -in ``BuiltIn`` if you need to convert arbitrary objects to Unicode. - - - - - -string -marker - -Returns contents of the ``string`` before the first occurrence of ``marker``. - -If the ``marker`` is not found, whole string is returned. - -See also `Fetch From Right`, `Split String` and `Split String -From Right`. - - - - - -string -marker - -Returns contents of the ``string`` after the last occurrence of ``marker``. - -If the ``marker`` is not found, whole string is returned. - -See also `Fetch From Left`, `Split String` and `Split String -From Right`. - - - - - -template -*positional -**named - -Formats a ``template`` using the given ``positional`` and ``named`` arguments. - -The template can be either be a string or an absolute path to -an existing file. In the latter case the file is read and its contents -are used as the template. If the template file contains non-ASCII -characters, it must be encoded using UTF-8. - -The template is formatted using Python's -[https://docs.python.org/library/string.html#format-string-syntax|format -string syntax]. Placeholders are marked using ``{}`` with possible -field name and format specification inside. Literal curly braces -can be inserted by doubling them like `{{` and `}}`. - -Examples: -| ${to} = | Format String | To: {} <{}> | ${user} | ${email} | -| ${to} = | Format String | To: {name} <{email}> | name=${name} | email=${email} | -| ${to} = | Format String | To: {user.name} <{user.email}> | user=${user} | -| ${xx} = | Format String | {:*^30} | centered | -| ${yy} = | Format String | {0:{width}{base}} | ${42} | base=X | width=10 | -| ${zz} = | Format String | ${CURDIR}/template.txt | positional | named=value | - -New in Robot Framework 3.1. - - - - - -length=8 -chars=[LETTERS][NUMBERS] - -Generates a string with a desired ``length`` from the given ``chars``. - -The population sequence ``chars`` contains the characters to use -when generating the random string. It can contain any -characters, and it is possible to use special markers -explained in the table below: - -| = Marker = | = Explanation = | -| ``[LOWER]`` | Lowercase ASCII characters from ``a`` to ``z``. | -| ``[UPPER]`` | Uppercase ASCII characters from ``A`` to ``Z``. | -| ``[LETTERS]`` | Lowercase and uppercase ASCII characters. | -| ``[NUMBERS]`` | Numbers from 0 to 9. | - -Examples: -| ${ret} = | Generate Random String | -| ${low} = | Generate Random String | 12 | [LOWER] | -| ${bin} = | Generate Random String | 8 | 01 | -| ${hex} = | Generate Random String | 4 | [NUMBERS]abcdef | - - - - - -string -line_number - -Returns the specified line from the given ``string``. - -Line numbering starts from 0 and it is possible to use -negative indices to refer to lines from the end. The line is -returned without the newline character. - -Examples: -| ${first} = | Get Line | ${string} | 0 | -| ${2nd last} = | Get Line | ${string} | -2 | - -Use `Split To Lines` if all lines are needed. - - - - - -string - -Returns and logs the number of lines in the given string. - - - - - -string -pattern -case_insensitive=False - -Returns lines of the given ``string`` that contain the ``pattern``. - -The ``pattern`` is always considered to be a normal string, not a glob -or regexp pattern. A line matches if the ``pattern`` is found anywhere -on it. - -The match is case-sensitive by default, but giving ``case_insensitive`` -a true value makes it case-insensitive. The value is considered true -if it is a non-empty string that is not equal to ``false``, ``none`` or -``no``. If the value is not a string, its truth value is got directly -in Python. Considering ``none`` false is new in RF 3.0.3. - -Lines are returned as one string catenated back together with -newlines. Possible trailing newline is never returned. The -number of matching lines is automatically logged. - -Examples: -| ${lines} = | Get Lines Containing String | ${result} | An example | -| ${ret} = | Get Lines Containing String | ${ret} | FAIL | case-insensitive | - -See `Get Lines Matching Pattern` and `Get Lines Matching Regexp` -if you need more complex pattern matching. - - - - - -string -pattern -case_insensitive=False - -Returns lines of the given ``string`` that match the ``pattern``. - -The ``pattern`` is a _glob pattern_ where: -| ``*`` | matches everything | -| ``?`` | matches any single character | -| ``[chars]`` | matches any character inside square brackets (e.g. ``[abc]`` matches either ``a``, ``b`` or ``c``) | -| ``[!chars]`` | matches any character not inside square brackets | - -A line matches only if it matches the ``pattern`` fully. - -The match is case-sensitive by default, but giving ``case_insensitive`` -a true value makes it case-insensitive. The value is considered true -if it is a non-empty string that is not equal to ``false``, ``none`` or -``no``. If the value is not a string, its truth value is got directly -in Python. Considering ``none`` false is new in RF 3.0.3. - -Lines are returned as one string catenated back together with -newlines. Possible trailing newline is never returned. The -number of matching lines is automatically logged. - -Examples: -| ${lines} = | Get Lines Matching Pattern | ${result} | Wild???? example | -| ${ret} = | Get Lines Matching Pattern | ${ret} | FAIL: * | case_insensitive=true | - -See `Get Lines Matching Regexp` if you need more complex -patterns and `Get Lines Containing String` if searching -literal strings is enough. - - - - - -string -pattern -partial_match=False - -Returns lines of the given ``string`` that match the regexp ``pattern``. - -See `BuiltIn.Should Match Regexp` for more information about -Python regular expression syntax in general and how to use it -in Robot Framework test data in particular. - -By default lines match only if they match the pattern fully, but -partial matching can be enabled by giving the ``partial_match`` -argument a true value. The value is considered true -if it is a non-empty string that is not equal to ``false``, ``none`` or -``no``. If the value is not a string, its truth value is got directly -in Python. Considering ``none`` false is new in RF 3.0.3. - -If the pattern is empty, it matches only empty lines by default. -When partial matching is enabled, empty pattern matches all lines. - -Notice that to make the match case-insensitive, you need to prefix -the pattern with case-insensitive flag ``(?i)``. - -Lines are returned as one string concatenated back together with -newlines. Possible trailing newline is never returned. The -number of matching lines is automatically logged. - -Examples: -| ${lines} = | Get Lines Matching Regexp | ${result} | Reg\\w{3} example | -| ${lines} = | Get Lines Matching Regexp | ${result} | Reg\\w{3} example | partial_match=true | -| ${ret} = | Get Lines Matching Regexp | ${ret} | (?i)FAIL: .* | - -See `Get Lines Matching Pattern` and `Get Lines Containing -String` if you do not need full regular expression powers (and -complexity). - -``partial_match`` argument is new in Robot Framework 2.9. In earlier - versions exact match was always required. - - - - - -string -pattern -*groups - -Returns a list of all non-overlapping matches in the given string. - -``string`` is the string to find matches from and ``pattern`` is the -regular expression. See `BuiltIn.Should Match Regexp` for more -information about Python regular expression syntax in general and how -to use it in Robot Framework test data in particular. - -If no groups are used, the returned list contains full matches. If one -group is used, the list contains only contents of that group. If -multiple groups are used, the list contains tuples that contain -individual group contents. All groups can be given as indexes (starting -from 1) and named groups also as names. - -Examples: -| ${no match} = | Get Regexp Matches | the string | xxx | -| ${matches} = | Get Regexp Matches | the string | t.. | -| ${one group} = | Get Regexp Matches | the string | t(..) | 1 | -| ${named group} = | Get Regexp Matches | the string | t(?P<name>..) | name | -| ${two groups} = | Get Regexp Matches | the string | t(.)(.) | 1 | 2 | -=> -| ${no match} = [] -| ${matches} = ['the', 'tri'] -| ${one group} = ['he', 'ri'] -| ${named group} = ['he', 'ri'] -| ${two groups} = [('h', 'e'), ('r', 'i')] - -New in Robot Framework 2.9. - - - - - -string -start -end=None - -Returns a substring from ``start`` index to ``end`` index. - -The ``start`` index is inclusive and ``end`` is exclusive. -Indexing starts from 0, and it is possible to use -negative indices to refer to characters from the end. - -Examples: -| ${ignore first} = | Get Substring | ${string} | 1 | | -| ${ignore last} = | Get Substring | ${string} | | -1 | -| ${5th to 10th} = | Get Substring | ${string} | 4 | 10 | -| ${first two} = | Get Substring | ${string} | | 1 | -| ${last two} = | Get Substring | ${string} | -2 | | - - - - - -string -*removables - -Removes all ``removables`` from the given ``string``. - -``removables`` are used as literal strings. Each removable will be -matched to a temporary string from which preceding removables have -been already removed. See second example below. - -Use `Remove String Using Regexp` if more powerful pattern matching is -needed. If only a certain number of matches should be removed, -`Replace String` or `Replace String Using Regexp` can be used. - -A modified version of the string is returned and the original -string is not altered. - -Examples: -| ${str} = | Remove String | Robot Framework | work | -| Should Be Equal | ${str} | Robot Frame | -| ${str} = | Remove String | Robot Framework | o | bt | -| Should Be Equal | ${str} | R Framewrk | - - - - - -string -*patterns - -Removes ``patterns`` from the given ``string``. - -This keyword is otherwise identical to `Remove String`, but -the ``patterns`` to search for are considered to be a regular -expression. See `Replace String Using Regexp` for more information -about the regular expression syntax. That keyword can also be -used if there is a need to remove only a certain number of -occurrences. - - - - - -string -search_for -replace_with -count=-1 - -Replaces ``search_for`` in the given ``string`` with ``replace_with``. - -``search_for`` is used as a literal string. See `Replace String -Using Regexp` if more powerful pattern matching is needed. -If you need to just remove a string see `Remove String`. - -If the optional argument ``count`` is given, only that many -occurrences from left are replaced. Negative ``count`` means -that all occurrences are replaced (default behaviour) and zero -means that nothing is done. - -A modified version of the string is returned and the original -string is not altered. - -Examples: -| ${str} = | Replace String | Hello, world! | world | tellus | -| Should Be Equal | ${str} | Hello, tellus! | | | -| ${str} = | Replace String | Hello, world! | l | ${EMPTY} | count=1 | -| Should Be Equal | ${str} | Helo, world! | | | - - - - - -string -pattern -replace_with -count=-1 - -Replaces ``pattern`` in the given ``string`` with ``replace_with``. - -This keyword is otherwise identical to `Replace String`, but -the ``pattern`` to search for is considered to be a regular -expression. See `BuiltIn.Should Match Regexp` for more -information about Python regular expression syntax in general -and how to use it in Robot Framework test data in particular. - -If you need to just remove a string see `Remove String Using Regexp`. - -Examples: -| ${str} = | Replace String Using Regexp | ${str} | 20\\d\\d-\\d\\d-\\d\\d | <DATE> | -| ${str} = | Replace String Using Regexp | ${str} | (Hello|Hi) | ${EMPTY} | count=1 | - - - - - -item -msg=None - -Fails if the given ``item`` is not a byte string. - -Use `Should Be Unicode String` if you want to verify the ``item`` is a -Unicode string, or `Should Be String` if both Unicode and byte strings -are fine. See `Should Be String` for more details about Unicode strings -and byte strings. - -The default error message can be overridden with the optional -``msg`` argument. - - - - - -string -msg=None - -Fails if the given ``string`` is not in lowercase. - -For example, ``'string'`` and ``'with specials!'`` would pass, and -``'String'``, ``''`` and ``' '`` would fail. - -The default error message can be overridden with the optional -``msg`` argument. - -See also `Should Be Uppercase` and `Should Be Titlecase`. - - - - - -item -msg=None - -Fails if the given ``item`` is not a string. - -With Python 2, except with IronPython, this keyword passes regardless -is the ``item`` a Unicode string or a byte string. Use `Should Be -Unicode String` or `Should Be Byte String` if you want to restrict -the string type. Notice that with Python 2, except with IronPython, -``'string'`` creates a byte string and ``u'unicode'`` must be used to -create a Unicode string. - -With Python 3 and IronPython, this keyword passes if the string is -a Unicode string but fails if it is bytes. Notice that with both -Python 3 and IronPython, ``'string'`` creates a Unicode string, and -``b'bytes'`` must be used to create a byte string. - -The default error message can be overridden with the optional -``msg`` argument. - - - - - -string -msg=None - -Fails if given ``string`` is not title. - -``string`` is a titlecased string if there is at least one -character in it, uppercase characters only follow uncased -characters and lowercase characters only cased ones. - -For example, ``'This Is Title'`` would pass, and ``'Word In UPPER'``, -``'Word In lower'``, ``''`` and ``' '`` would fail. - -The default error message can be overridden with the optional -``msg`` argument. - -See also `Should Be Uppercase` and `Should Be Lowercase`. - - - - - -item -msg=None - -Fails if the given ``item`` is not a Unicode string. - -Use `Should Be Byte String` if you want to verify the ``item`` is a -byte string, or `Should Be String` if both Unicode and byte strings -are fine. See `Should Be String` for more details about Unicode -strings and byte strings. - -The default error message can be overridden with the optional -``msg`` argument. - - - - - -string -msg=None - -Fails if the given ``string`` is not in uppercase. - -For example, ``'STRING'`` and ``'WITH SPECIALS!'`` would pass, and -``'String'``, ``''`` and ``' '`` would fail. - -The default error message can be overridden with the optional -``msg`` argument. - -See also `Should Be Titlecase` and `Should Be Lowercase`. - - - - - -item -msg=None - -Fails if the given ``item`` is a string. - -See `Should Be String` for more details about Unicode strings and byte -strings. - -The default error message can be overridden with the optional -``msg`` argument. - - - - - -string -separator=None -max_split=-1 - -Splits the ``string`` using ``separator`` as a delimiter string. - -If a ``separator`` is not given, any whitespace string is a -separator. In that case also possible consecutive whitespace -as well as leading and trailing whitespace is ignored. - -Split words are returned as a list. If the optional -``max_split`` is given, at most ``max_split`` splits are done, and -the returned list will have maximum ``max_split + 1`` elements. - -Examples: -| @{words} = | Split String | ${string} | -| @{words} = | Split String | ${string} | ,${SPACE} | -| ${pre} | ${post} = | Split String | ${string} | :: | 1 | - -See `Split String From Right` if you want to start splitting -from right, and `Fetch From Left` and `Fetch From Right` if -you only want to get first/last part of the string. - - - - - -string -separator=None -max_split=-1 - -Splits the ``string`` using ``separator`` starting from right. - -Same as `Split String`, but splitting is started from right. This has -an effect only when ``max_split`` is given. - -Examples: -| ${first} | ${rest} = | Split String | ${string} | - | 1 | -| ${rest} | ${last} = | Split String From Right | ${string} | - | 1 | - - - - - -string - -Splits the given ``string`` to characters. - -Example: -| @{characters} = | Split String To Characters | ${string} | - - - - - -string -start=0 -end=None - -Splits the given string to lines. - -It is possible to get only a selection of lines from ``start`` -to ``end`` so that ``start`` index is inclusive and ``end`` is -exclusive. Line numbering starts from 0, and it is possible to -use negative indices to refer to lines from the end. - -Lines are returned without the newlines. The number of -returned lines is automatically logged. - -Examples: -| @{lines} = | Split To Lines | ${manylines} | | | -| @{ignore first} = | Split To Lines | ${manylines} | 1 | | -| @{ignore last} = | Split To Lines | ${manylines} | | -1 | -| @{5th to 10th} = | Split To Lines | ${manylines} | 4 | 10 | -| @{first two} = | Split To Lines | ${manylines} | | 1 | -| @{last two} = | Split To Lines | ${manylines} | -2 | | - -Use `Get Line` if you only need to get a single line. - - - - - -string -mode=both -characters=None - -Remove leading and/or trailing whitespaces from the given string. - -``mode`` is either ``left`` to remove leading characters, ``right`` to -remove trailing characters, ``both`` (default) to remove the -characters from both sides of the string or ``none`` to return the -unmodified string. - -If the optional ``characters`` is given, it must be a string and the -characters in the string will be stripped in the string. Please note, -that this is not a substring to be removed but a list of characters, -see the example below. - -Examples: -| ${stripped}= | Strip String | ${SPACE}Hello${SPACE} | | -| Should Be Equal | ${stripped} | Hello | | -| ${stripped}= | Strip String | ${SPACE}Hello${SPACE} | mode=left | -| Should Be Equal | ${stripped} | Hello${SPACE} | | -| ${stripped}= | Strip String | aabaHelloeee | characters=abe | -| Should Be Equal | ${stripped} | Hello | | - -New in Robot Framework 3.0. - - - - diff --git a/libspecs/Telnet.libspec b/libspecs/Telnet.libspec deleted file mode 100644 index 0e1aa812a..000000000 --- a/libspecs/Telnet.libspec +++ /dev/null @@ -1,744 +0,0 @@ - - -3.1 -test suite -yes -A test library providing communication over Telnet connections. - -``Telnet`` is Robot Framework's standard library that makes it possible to -connect to Telnet servers and execute commands on the opened connections. - -== Table of contents == - -- `Connections` -- `Writing and reading` -- `Configuration` -- `Terminal emulation` -- `Logging` -- `Time string format` -- `Boolean arguments` -- `Importing` -- `Shortcuts` -- `Keywords` - -= Connections = - -The first step of using ``Telnet`` is opening a connection with `Open -Connection` keyword. Typically the next step is logging in with `Login` -keyword, and in the end the opened connection can be closed with `Close -Connection`. - -It is possible to open multiple connections and switch the active one -using `Switch Connection`. `Close All Connections` can be used to close -all the connections, which is especially useful in suite teardowns to -guarantee that all connections are always closed. - -= Writing and reading = - -After opening a connection and possibly logging in, commands can be -executed or text written to the connection for other reasons using `Write` -and `Write Bare` keywords. The main difference between these two is that -the former adds a [#Configuration|configurable newline] after the text -automatically. - -After writing something to the connection, the resulting output can be -read using `Read`, `Read Until`, `Read Until Regexp`, and `Read Until -Prompt` keywords. Which one to use depends on the context, but the latest -one is often the most convenient. - -As a convenience when running a command, it is possible to use `Execute -Command` that simply uses `Write` and `Read Until Prompt` internally. -`Write Until Expected Output` is useful if you need to wait until writing -something produces a desired output. - -Written and read text is automatically encoded/decoded using a -[#Configuration|configured encoding]. - -The ANSI escape codes, like cursor movement and color codes, are -normally returned as part of the read operation. If an escape code occurs -in middle of a search pattern it may also prevent finding the searched -string. `Terminal emulation` can be used to process these -escape codes as they would be if a real terminal would be in use. - -= Configuration = - -Many aspects related the connections can be easily configured either -globally or per connection basis. Global configuration is done when -[#Importing|library is imported], and these values can be overridden per -connection by `Open Connection` or with setting specific keywords -`Set Timeout`, `Set Newline`, `Set Prompt`, `Set Encoding`, -`Set Default Log Level` and `Set Telnetlib Log Level`. - -Values of ``environ_user``, ``window_size``, ``terminal_emulation``, and -``terminal_type`` can not be changed after opening the connection. - -== Timeout == - -Timeout defines how long is the maximum time to wait when reading -output. It is used internally by `Read Until`, `Read Until Regexp`, -`Read Until Prompt`, and `Login` keywords. The default value is 3 seconds. - -== Connection Timeout == - -Connection Timeout defines how long is the maximum time to wait when -opening the telnet connection. It is used internally by `Open Connection`. -The default value is the system global default timeout. - -New in Robot Framework 2.9.2. - -== Newline == - -Newline defines which line separator `Write` keyword should use. The -default value is ``CRLF`` that is typically used by Telnet connections. - -Newline can be given either in escaped format using ``\n`` and ``\r`` or -with special ``LF`` and ``CR`` syntax. - -Examples: -| `Set Newline` | \n | -| `Set Newline` | CRLF | - -== Prompt == - -Often the easiest way to read the output of a command is reading all -the output until the next prompt with `Read Until Prompt`. It also makes -it easier, and faster, to verify did `Login` succeed. - -Prompt can be specified either as a normal string or a regular expression. -The latter is especially useful if the prompt changes as a result of -the executed commands. Prompt can be set to be a regular expression -by giving ``prompt_is_regexp`` argument a true value (see `Boolean -arguments`). - -Examples: -| `Open Connection` | lolcathost | prompt=$ | -| `Set Prompt` | (> |# ) | prompt_is_regexp=true | - -== Encoding == - -To ease handling text containing non-ASCII characters, all written text is -encoded and read text decoded by default. The default encoding is UTF-8 -that works also with ASCII. Encoding can be disabled by using a special -encoding value ``NONE``. This is mainly useful if you need to get the bytes -received from the connection as-is. - -Notice that when writing to the connection, only Unicode strings are -encoded using the defined encoding. Byte strings are expected to be already -encoded correctly. Notice also that normal text in test data is passed to -the library as Unicode and you need to use variables to use bytes. - -It is also possible to configure the error handler to use if encoding or -decoding characters fails. Accepted values are the same that encode/decode -functions in Python strings accept. In practice the following values are -the most useful: - -- ``ignore``: ignore characters that cannot be encoded (default) -- ``strict``: fail if characters cannot be encoded -- ``replace``: replace characters that cannot be encoded with a replacement - character - -Examples: -| `Open Connection` | lolcathost | encoding=Latin1 | encoding_errors=strict | -| `Set Encoding` | ISO-8859-15 | -| `Set Encoding` | errors=ignore | - -== Default log level == - -Default log level specifies the log level keywords use for `logging` unless -they are given an explicit log level. The default value is ``INFO``, and -changing it, for example, to ``DEBUG`` can be a good idea if there is lot -of unnecessary output that makes log files big. - -== Terminal type == - -By default the Telnet library does not negotiate any specific terminal type -with the server. If a specific terminal type, for example ``vt100``, is -desired, the terminal type can be configured in `importing` and with -`Open Connection`. - -== Window size == - -Window size for negotiation with the server can be configured when -`importing` the library and with `Open Connection`. - -== USER environment variable == - -Telnet protocol allows the ``USER`` environment variable to be sent when -connecting to the server. On some servers it may happen that there is no -login prompt, and on those cases this configuration option will allow still -to define the desired username. The option ``environ_user`` can be used in -`importing` and with `Open Connection`. - -= Terminal emulation = - -Telnet library supports terminal -emulation with [http://pyte.readthedocs.io|Pyte]. Terminal emulation -will process the output in a virtual screen. This means that ANSI escape -codes, like cursor movements, and also control characters, like -carriage returns and backspaces, have the same effect on the result as they -would have on a normal terminal screen. For example the sequence -``acdc\x1b[3Dbba`` will result in output ``abba``. - -Terminal emulation is taken into use by giving ``terminal_emulation`` -argument a true value (see `Boolean arguments`) either in the library -initialization or with `Open Connection`. - -As Pyte approximates vt-style terminal, you may also want to set the -terminal type as ``vt100``. We also recommend that you increase the window -size, as the terminal emulation will break all lines that are longer than -the window row length. - -When terminal emulation is used, the `newline` and `encoding` can not be -changed anymore after opening the connection. - -Examples: -| `Open Connection` | lolcathost | terminal_emulation=True | terminal_type=vt100 | window_size=400x100 | - -As a prerequisite for using terminal emulation, you need to have Pyte -installed. Due to backwards incompatible changes in Pyte, different -Robot Framework versions support different Pyte versions: - -- Pyte 0.6 and newer are supported by Robot Framework 3.0.3. - Latest Pyte version can be installed (or upgraded) with - ``pip install --upgrade pyte``. -- Pyte 0.5.2 and older are supported by Robot Framework 3.0.2 and earlier. - Pyte 0.5.2 can be installed with ``pip install pyte==0.5.2``. - -= Logging = - -All keywords that read something log the output. These keywords take the -log level to use as an optional argument, and if no log level is specified -they use the [#Configuration|configured] default value. - -The valid log levels to use are ``TRACE``, ``DEBUG``, ``INFO`` (default), -and ``WARN``. Levels below ``INFO`` are not shown in log files by default -whereas warnings are shown more prominently. - -The [http://docs.python.org/library/telnetlib.html|telnetlib module] -used by this library has a custom logging system for logging content it -sends and receives. By default these messages are written using ``TRACE`` -level, but the level is configurable with the ``telnetlib_log_level`` -option either in the library initialization, to the `Open Connection` -or by using the `Set Telnetlib Log Level` keyword to the active -connection. Special level ``NONE`` con be used to disable the logging -altogether. - -= Time string format = - -Timeouts and other times used must be given as a time string using format -like ``15 seconds`` or ``1min 10s``. If the timeout is given as just -a number, for example, ``10`` or ``1.5``, it is considered to be seconds. -The time string format is described in more detail in an appendix of -[http://robotframework.org/robotframework/#user-guide|Robot Framework User Guide]. - -= Boolean arguments = - -Some keywords accept arguments that are handled as Boolean values true or -false. If such an argument is given as a string, it is considered false if -it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or -``0``, case-insensitively. Other strings are considered true regardless -their value, and other argument types are tested using the same -[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. - -True examples: -| `Open Connection` | lolcathost | terminal_emulation=True | # Strings are generally true. | -| `Open Connection` | lolcathost | terminal_emulation=yes | # Same as the above. | -| `Open Connection` | lolcathost | terminal_emulation=${TRUE} | # Python ``True`` is true. | -| `Open Connection` | lolcathost | terminal_emulation=${42} | # Numbers other than 0 are true. | - -False examples: -| `Open Connection` | lolcathost | terminal_emulation=False | # String ``false`` is false. | -| `Open Connection` | lolcathost | terminal_emulation=no | # Also string ``no`` is false. | -| `Open Connection` | lolcathost | terminal_emulation=${EMPTY} | # Empty string is false. | -| `Open Connection` | lolcathost | terminal_emulation=${FALSE} | # Python ``False`` is false. | - -Considering string ``NONE`` false is new in Robot Framework 3.0.3 and -considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. - - -timeout=3 seconds -newline=CRLF -prompt=None -prompt_is_regexp=False -encoding=UTF-8 -encoding_errors=ignore -default_log_level=INFO -window_size=None -environ_user=None -terminal_emulation=False -terminal_type=None -telnetlib_log_level=TRACE -connection_timeout=None - -Telnet library can be imported with optional configuration parameters. - -Configuration parameters are used as default values when new -connections are opened with `Open Connection` keyword. They can also be -overridden after opening the connection using the `Set ...` `keywords`. -See these keywords as well as `Configuration`, `Terminal emulation` and -`Logging` sections above for more information about these parameters -and their possible values. - -See `Time string format` and `Boolean arguments` sections for -information about using arguments accepting times and Boolean values, -respectively. - -Examples (use only one of these): -| = Setting = | = Value = | = Value = | = Value = | = Value = | = Comment = | -| Library | Telnet | | | | # default values | -| Library | Telnet | 5 seconds | | | # set only timeout | -| Library | Telnet | newline=LF | encoding=ISO-8859-1 | | # set newline and encoding using named arguments | -| Library | Telnet | prompt=$ | | | # set prompt | -| Library | Telnet | prompt=(> |# ) | prompt_is_regexp=yes | | # set prompt as a regular expression | -| Library | Telnet | terminal_emulation=True | terminal_type=vt100 | window_size=400x100 | # use terminal emulation with defined window size and terminal type | -| Library | Telnet | telnetlib_log_level=NONE | | | # disable logging messages from the underlying telnetlib | - - - - - - -Closes all open connections and empties the connection cache. - -If multiple connections are opened, this keyword should be used in -a test or suite teardown to make sure that all connections are closed. -It is not an error is some of the connections have already been closed -by `Close Connection`. - -After this keyword, new indexes returned by `Open Connection` -keyword are reset to 1. - - - - - -loglevel=None - -Closes the current Telnet connection. - -Remaining output in the connection is read, logged, and returned. -It is not an error to close an already closed connection. - -Use `Close All Connections` if you want to make sure all opened -connections are closed. - -See `Logging` section for more information about log levels. - - - - - -command -loglevel=None -strip_prompt=False - -Executes the given ``command`` and reads, logs, and returns everything until the prompt. - -This keyword requires the prompt to be [#Configuration|configured] -either in `importing` or with `Open Connection` or `Set Prompt` keyword. - -This is a convenience keyword that uses `Write` and `Read Until Prompt` -internally. Following two examples are thus functionally identical: - -| ${out} = | `Execute Command` | pwd | - -| `Write` | pwd | -| ${out} = | `Read Until Prompt` | - -See `Logging` section for more information about log levels and `Read -Until Prompt` for more information about the ``strip_prompt`` parameter. - - - - - -username -password -login_prompt=login: -password_prompt=Password: -login_timeout=1 second -login_incorrect=Login incorrect - -Logs in to the Telnet server with the given user information. - -This keyword reads from the connection until the ``login_prompt`` is -encountered and then types the given ``username``. Then it reads until -the ``password_prompt`` and types the given ``password``. In both cases -a newline is appended automatically and the connection specific -timeout used when waiting for outputs. - -How logging status is verified depends on whether a prompt is set for -this connection or not: - -1) If the prompt is set, this keyword reads the output until the prompt -is found using the normal timeout. If no prompt is found, login is -considered failed and also this keyword fails. Note that in this case -both ``login_timeout`` and ``login_incorrect`` arguments are ignored. - -2) If the prompt is not set, this keywords sleeps until ``login_timeout`` -and then reads all the output available on the connection. If the -output contains ``login_incorrect`` text, login is considered failed -and also this keyword fails. - -See `Configuration` section for more information about setting -newline, timeout, and prompt. - - - - - -host -alias=None -port=23 -timeout=None -newline=None -prompt=None -prompt_is_regexp=False -encoding=None -encoding_errors=None -default_log_level=None -window_size=None -environ_user=None -terminal_emulation=None -terminal_type=None -telnetlib_log_level=None -connection_timeout=None - -Opens a new Telnet connection to the given host and port. - -The ``timeout``, ``newline``, ``prompt``, ``prompt_is_regexp``, -``encoding``, ``default_log_level``, ``window_size``, ``environ_user``, -``terminal_emulation``, ``terminal_type`` and ``telnetlib_log_level`` -arguments get default values when the library is [#Importing|imported]. -Setting them here overrides those values for the opened connection. -See `Configuration`, `Terminal emulation` and `Logging` sections for -more information about these parameters and their possible values. - -Possible already opened connections are cached and it is possible to -switch back to them using `Switch Connection` keyword. It is possible to -switch either using explicitly given ``alias`` or using index returned -by this keyword. Indexing starts from 1 and is reset back to it by -`Close All Connections` keyword. - - - - - -loglevel=None - -Reads everything that is currently available in the output. - -Read output is both returned and logged. See `Logging` section for more -information about log levels. - - - - - -expected -loglevel=None - -Reads output until ``expected`` text is encountered. - -Text up to and including the match is returned and logged. If no match -is found, this keyword fails. How much to wait for the output depends -on the [#Configuration|configured timeout]. - -See `Logging` section for more information about log levels. Use -`Read Until Regexp` if more complex matching is needed. - - - - - -loglevel=None -strip_prompt=False - -Reads output until the prompt is encountered. - -This keyword requires the prompt to be [#Configuration|configured] -either in `importing` or with `Open Connection` or `Set Prompt` keyword. - -By default, text up to and including the prompt is returned and logged. -If no prompt is found, this keyword fails. How much to wait for the -output depends on the [#Configuration|configured timeout]. - -If you want to exclude the prompt from the returned output, set -``strip_prompt`` to a true value (see `Boolean arguments`). If your -prompt is a regular expression, make sure that the expression spans the -whole prompt, because only the part of the output that matches the -regular expression is stripped away. - -See `Logging` section for more information about log levels. - - - - - -*expected - -Reads output until any of the ``expected`` regular expressions match. - -This keyword accepts any number of regular expressions patterns or -compiled Python regular expression objects as arguments. Text up to -and including the first match to any of the regular expressions is -returned and logged. If no match is found, this keyword fails. How much -to wait for the output depends on the [#Configuration|configured timeout]. - -If the last given argument is a [#Logging|valid log level], it is used -as ``loglevel`` similarly as with `Read Until` keyword. - -See the documentation of -[http://docs.python.org/library/re.html|Python re module] -for more information about the supported regular expression syntax. -Notice that possible backslashes need to be escaped in Robot Framework -test data. - -Examples: -| `Read Until Regexp` | (#|$) | -| `Read Until Regexp` | first_regexp | second_regexp | -| `Read Until Regexp` | \\d{4}-\\d{2}-\\d{2} | DEBUG | - - - - - -level - -Sets the default log level used for `logging` in the current connection. - -The old default log level is returned and can be used to restore the -log level later. - -See `Configuration` section for more information about global and -connection specific configuration. - - - - - -encoding=None -errors=None - -Sets the encoding to use for `writing and reading` in the current connection. - -The given ``encoding`` specifies the encoding to use when written/read -text is encoded/decoded, and ``errors`` specifies the error handler to -use if encoding/decoding fails. Either of these can be omitted and in -that case the old value is not affected. Use string ``NONE`` to disable -encoding altogether. - -See `Configuration` section for more information about encoding and -error handlers, as well as global and connection specific configuration -in general. - -The old values are returned and can be used to restore the encoding -and the error handler later. See `Set Prompt` for a similar example. - -If terminal emulation is used, the encoding can not be changed on an open -connection. - - - - - -newline - -Sets the newline used by `Write` keyword in the current connection. - -The old newline is returned and can be used to restore the newline later. -See `Set Timeout` for a similar example. - -If terminal emulation is used, the newline can not be changed on an open -connection. - -See `Configuration` section for more information about global and -connection specific configuration. - - - - - -prompt -prompt_is_regexp=False - -Sets the prompt used by `Read Until Prompt` and `Login` in the current connection. - -If ``prompt_is_regexp`` is given a true value (see `Boolean arguments`), -the given ``prompt`` is considered to be a regular expression. - -The old prompt is returned and can be used to restore the prompt later. - -Example: -| ${prompt} | ${regexp} = | `Set Prompt` | $ | -| `Do Something` | -| `Set Prompt` | ${prompt} | ${regexp} | - -See the documentation of -[http://docs.python.org/library/re.html|Python re module] -for more information about the supported regular expression syntax. -Notice that possible backslashes need to be escaped in Robot Framework -test data. - -See `Configuration` section for more information about global and -connection specific configuration. - - - - - -level - -Sets the log level used for `logging` in the underlying ``telnetlib``. - -Note that ``telnetlib`` can be very noisy thus using the level ``NONE`` -can shutdown the messages generated by this library. - - - - - -timeout - -Sets the timeout used for waiting output in the current connection. - -Read operations that expect some output to appear (`Read Until`, `Read -Until Regexp`, `Read Until Prompt`, `Login`) use this timeout and fail -if the expected output does not appear before this timeout expires. - -The ``timeout`` must be given in `time string format`. The old timeout -is returned and can be used to restore the timeout later. - -Example: -| ${old} = | `Set Timeout` | 2 minute 30 seconds | -| `Do Something` | -| `Set Timeout` | ${old} | - -See `Configuration` section for more information about global and -connection specific configuration. - - - - - -index_or_alias - -Switches between active connections using an index or an alias. - -Aliases can be given to `Open Connection` keyword which also always -returns the connection index. - -This keyword returns the index of previous active connection. - -Example: -| `Open Connection` | myhost.net | | | -| `Login` | john | secret | | -| `Write` | some command | | | -| `Open Connection` | yourhost.com | 2nd conn | | -| `Login` | root | password | | -| `Write` | another cmd | | | -| ${old index}= | `Switch Connection` | 1 | # index | -| `Write` | something | | | -| `Switch Connection` | 2nd conn | | # alias | -| `Write` | whatever | | | -| `Switch Connection` | ${old index} | | # back to original | -| [Teardown] | `Close All Connections` | | | - -The example above expects that there were no other open -connections when opening the first one, because it used index -``1`` when switching to the connection later. If you are not -sure about that, you can store the index into a variable as -shown below. - -| ${index} = | `Open Connection` | myhost.net | -| `Do Something` | | | -| `Switch Connection` | ${index} | | - - - - - -text -loglevel=None - -Writes the given text plus a newline into the connection. - -The newline character sequence to use can be [#Configuration|configured] -both globally and per connection basis. The default value is ``CRLF``. - -This keyword consumes the written text, until the added newline, from -the output and logs and returns it. The given text itself must not -contain newlines. Use `Write Bare` instead if either of these features -causes a problem. - -*Note:* This keyword does not return the possible output of the executed -command. To get the output, one of the `Read ...` `keywords` must be -used. See `Writing and reading` section for more details. - -See `Logging` section for more information about log levels. - - - - - -text - -Writes the given text, and nothing else, into the connection. - -This keyword does not append a newline nor consume the written text. -Use `Write` if these features are needed. - - - - - -character - -Writes the given control character into the connection. - -The control character is prepended with an IAC (interpret as command) -character. - -The following control character names are supported: BRK, IP, AO, AYT, -EC, EL, NOP. Additionally, you can use arbitrary numbers to send any -control character. - -Example: -| Write Control Character | BRK | # Send Break command | -| Write Control Character | 241 | # Send No operation command | - - - - - -text -expected -timeout -retry_interval -loglevel=None - -Writes the given ``text`` repeatedly, until ``expected`` appears in the output. - -``text`` is written without appending a newline and it is consumed from -the output before trying to find ``expected``. If ``expected`` does not -appear in the output within ``timeout``, this keyword fails. - -``retry_interval`` defines the time to wait ``expected`` to appear before -writing the ``text`` again. Consuming the written ``text`` is subject to -the normal [#Configuration|configured timeout]. - -Both ``timeout`` and ``retry_interval`` must be given in `time string -format`. See `Logging` section for more information about log levels. - -Example: -| Write Until Expected Output | ps -ef| grep myprocess\r\n | myprocess | -| ... | 5 s | 0.5 s | - -The above example writes command ``ps -ef | grep myprocess\r\n`` until -``myprocess`` appears in the output. The command is written every 0.5 -seconds and the keyword fails if ``myprocess`` does not appear in -the output in 5 seconds. - - - - diff --git a/libspecs/XML.libspec b/libspecs/XML.libspec deleted file mode 100644 index a5b64dc04..000000000 --- a/libspecs/XML.libspec +++ /dev/null @@ -1,1365 +0,0 @@ - - -3.1 -global -yes -Robot Framework test library for verifying and modifying XML documents. - -As the name implies, _XML_ is a test library for verifying contents of XML -files. In practice it is a pretty thin wrapper on top of Python's -[http://docs.python.org/library/xml.etree.elementtree.html|ElementTree XML API]. - -The library has the following main usages: - -- Parsing an XML file, or a string containing XML, into an XML element - structure and finding certain elements from it for for further analysis - (e.g. `Parse XML` and `Get Element` keywords). -- Getting text or attributes of elements - (e.g. `Get Element Text` and `Get Element Attribute`). -- Directly verifying text, attributes, or whole elements - (e.g `Element Text Should Be` and `Elements Should Be Equal`). -- Modifying XML and saving it (e.g. `Set Element Text`, `Add Element` - and `Save XML`). - -== Table of contents == - -- `Parsing XML` -- `Using lxml` -- `Example` -- `Finding elements with xpath` -- `Element attributes` -- `Handling XML namespaces` -- `Boolean arguments` -- `Pattern matching` -- `Shortcuts` -- `Keywords` - -= Parsing XML = - -XML can be parsed into an element structure using `Parse XML` keyword. -It accepts both paths to XML files and strings that contain XML. The -keyword returns the root element of the structure, which then contains -other elements as its children and their children. Possible comments and -processing instructions in the source XML are removed. - -XML is not validated during parsing even if has a schema defined. How -possible doctype elements are handled otherwise depends on the used XML -module and on the platform. The standard ElementTree strips doctypes -altogether but when `using lxml` they are preserved when XML is saved. - -The element structure returned by `Parse XML`, as well as elements -returned by keywords such as `Get Element`, can be used as the ``source`` -argument with other keywords. In addition to an already parsed XML -structure, other keywords also accept paths to XML files and strings -containing XML similarly as `Parse XML`. Notice that keywords that modify -XML do not write those changes back to disk even if the source would be -given as a path to a file. Changes must always saved explicitly using -`Save XML` keyword. - -When the source is given as a path to a file, the forward slash character -(``/``) can be used as the path separator regardless the operating system. -On Windows also the backslash works, but it the test data it needs to be -escaped by doubling it (``\\``). Using the built-in variable ``${/}`` -naturally works too. - -= Using lxml = - -By default this library uses Python's standard -[http://docs.python.org/library/xml.etree.elementtree.html|ElementTree] -module for parsing XML, but it can be configured to use -[http://lxml.de|lxml] module instead when `importing` the library. -The resulting element structure has same API regardless which module -is used for parsing. - -The main benefits of using lxml is that it supports richer xpath syntax -than the standard ElementTree and enables using `Evaluate Xpath` keyword. -It also preserves the doctype and possible namespace prefixes saving XML. - -= Example = - -The following simple example demonstrates parsing XML and verifying its -contents both using keywords in this library and in _BuiltIn_ and -_Collections_ libraries. How to use xpath expressions to find elements -and what attributes the returned elements contain are discussed, with -more examples, in `Finding elements with xpath` and `Element attributes` -sections. - -In this example, as well as in many other examples in this documentation, -``${XML}`` refers to the following example XML document. In practice -``${XML}`` could either be a path to an XML file or it could contain the XML -itself. - -| <example> -| <first id="1">text</first> -| <second id="2"> -| <child/> -| </second> -| <third> -| <child>more text</child> -| <second id="child"/> -| <child><grandchild/></child> -| </third> -| <html> -| <p> -| Text with <b>bold</b> and <i>italics</i>. -| </p> -| </html> -| </example> - -| ${root} = | `Parse XML` | ${XML} | | | -| `Should Be Equal` | ${root.tag} | example | | | -| ${first} = | `Get Element` | ${root} | first | | -| `Should Be Equal` | ${first.text} | text | | | -| `Dictionary Should Contain Key` | ${first.attrib} | id | | -| `Element Text Should Be` | ${first} | text | | | -| `Element Attribute Should Be` | ${first} | id | 1 | | -| `Element Attribute Should Be` | ${root} | id | 1 | xpath=first | -| `Element Attribute Should Be` | ${XML} | id | 1 | xpath=first | - -Notice that in the example three last lines are equivalent. Which one to -use in practice depends on which other elements you need to get or verify. -If you only need to do one verification, using the last line alone would -suffice. If more verifications are needed, parsing the XML with `Parse XML` -only once would be more efficient. - -= Finding elements with xpath = - -ElementTree, and thus also this library, supports finding elements using -xpath expressions. ElementTree does not, however, support the full xpath -standard. The supported xpath syntax is explained below and -[https://docs.python.org/library/xml.etree.elementtree.html#xpath-support| -ElementTree documentation] provides more details. In the examples -``${XML}`` refers to the same XML structure as in the earlier example. - -If lxml support is enabled when `importing` the library, the whole -[http://www.w3.org/TR/xpath/|xpath 1.0 standard] is supported. -That includes everything listed below but also lot of other useful -constructs. - -== Tag names == - -When just a single tag name is used, xpath matches all direct child -elements that have that tag name. - -| ${elem} = | `Get Element` | ${XML} | third | -| `Should Be Equal` | ${elem.tag} | third | | -| @{children} = | `Get Elements` | ${elem} | child | -| `Length Should Be` | ${children} | 2 | | - -== Paths == - -Paths are created by combining tag names with a forward slash (``/``). For -example, ``parent/child`` matches all ``child`` elements under ``parent`` -element. Notice that if there are multiple ``parent`` elements that all -have ``child`` elements, ``parent/child`` xpath will match all these -``child`` elements. - -| ${elem} = | `Get Element` | ${XML} | second/child | -| `Should Be Equal` | ${elem.tag} | child | | -| ${elem} = | `Get Element` | ${XML} | third/child/grandchild | -| `Should Be Equal` | ${elem.tag} | grandchild | | - -== Wildcards == - -An asterisk (``*``) can be used in paths instead of a tag name to denote -any element. - -| @{children} = | `Get Elements` | ${XML} | */child | -| `Length Should Be` | ${children} | 3 | | - -== Current element == - -The current element is denoted with a dot (``.``). Normally the current -element is implicit and does not need to be included in the xpath. - -== Parent element == - -The parent element of another element is denoted with two dots (``..``). -Notice that it is not possible to refer to the parent of the current -element. - -| ${elem} = | `Get Element` | ${XML} | */second/.. | -| `Should Be Equal` | ${elem.tag} | third | | - -== Search all sub elements == - -Two forward slashes (``//``) mean that all sub elements, not only the -direct children, are searched. If the search is started from the current -element, an explicit dot is required. - -| @{elements} = | `Get Elements` | ${XML} | .//second | -| `Length Should Be` | ${elements} | 2 | | -| ${b} = | `Get Element` | ${XML} | html//b | -| `Should Be Equal` | ${b.text} | bold | | - -== Predicates == - -Predicates allow selecting elements using also other criteria than tag -names, for example, attributes or position. They are specified after the -normal tag name or path using syntax ``path[predicate]``. The path can have -wildcards and other special syntax explained earlier. What predicates -the standard ElementTree supports is explained in the table below. - -| = Predicate = | = Matches = | = Example = | -| @attrib | Elements with attribute ``attrib``. | second[@id] | -| @attrib="value" | Elements with attribute ``attrib`` having value ``value``. | *[@id="2"] | -| position | Elements at the specified position. Position can be an integer (starting from 1), expression ``last()``, or relative expression like ``last() - 1``. | third/child[1] | -| tag | Elements with a child element named ``tag``. | third/child[grandchild] | - -Predicates can also be stacked like ``path[predicate1][predicate2]``. -A limitation is that possible position predicate must always be first. - -= Element attributes = - -All keywords returning elements, such as `Parse XML`, and `Get Element`, -return ElementTree's -[http://docs.python.org/library/xml.etree.elementtree.html#element-objects|Element objects]. -These elements can be used as inputs for other keywords, but they also -contain several useful attributes that can be accessed directly using -the extended variable syntax. - -The attributes that are both useful and convenient to use in the test -data are explained below. Also other attributes, including methods, can -be accessed, but that is typically better to do in custom libraries than -directly in the test data. - -The examples use the same ``${XML}`` structure as the earlier examples. - -== tag == - -The tag of the element. - -| ${root} = | `Parse XML` | ${XML} | -| `Should Be Equal` | ${root.tag} | example | - -== text == - -The text that the element contains or Python ``None`` if the element has no -text. Notice that the text _does not_ contain texts of possible child -elements nor text after or between children. Notice also that in XML -whitespace is significant, so the text contains also possible indentation -and newlines. To get also text of the possible children, optionally -whitespace normalized, use `Get Element Text` keyword. - -| ${1st} = | `Get Element` | ${XML} | first | -| `Should Be Equal` | ${1st.text} | text | | -| ${2nd} = | `Get Element` | ${XML} | second/child | -| `Should Be Equal` | ${2nd.text} | ${NONE} | | -| ${p} = | `Get Element` | ${XML} | html/p | -| `Should Be Equal` | ${p.text} | \n${SPACE*6}Text with${SPACE} | - -== tail == - -The text after the element before the next opening or closing tag. Python -``None`` if the element has no tail. Similarly as with ``text``, also -``tail`` contains possible indentation and newlines. - -| ${b} = | `Get Element` | ${XML} | html/p/b | -| `Should Be Equal` | ${b.tail} | ${SPACE}and${SPACE} | - -== attrib == - -A Python dictionary containing attributes of the element. - -| ${2nd} = | `Get Element` | ${XML} | second | -| `Should Be Equal` | ${2nd.attrib['id']} | 2 | | -| ${3rd} = | `Get Element` | ${XML} | third | -| `Should Be Empty` | ${3rd.attrib} | | | - -= Handling XML namespaces = - -ElementTree and lxml handle possible namespaces in XML documents by adding -the namespace URI to tag names in so called Clark Notation. That is -inconvenient especially with xpaths, and by default this library strips -those namespaces away and moves them to ``xmlns`` attribute instead. That -can be avoided by passing ``keep_clark_notation`` argument to `Parse XML` -keyword. Alternatively `Parse XML` supports stripping namespace information -altogether by using ``strip_namespaces`` argument. The pros and cons of -different approaches are discussed in more detail below. - -== How ElementTree handles namespaces == - -If an XML document has namespaces, ElementTree adds namespace information -to tag names in [http://www.jclark.com/xml/xmlns.htm|Clark Notation] -(e.g. ``{http://ns.uri}tag``) and removes original ``xmlns`` attributes. -This is done both with default namespaces and with namespaces with a prefix. -How it works in practice is illustrated by the following example, where -``${NS}`` variable contains this XML document: - -| <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" -| xmlns="http://www.w3.org/1999/xhtml"> -| <xsl:template match="/"> -| <html></html> -| </xsl:template> -| </xsl:stylesheet> - -| ${root} = | `Parse XML` | ${NS} | keep_clark_notation=yes | -| `Should Be Equal` | ${root.tag} | {http://www.w3.org/1999/XSL/Transform}stylesheet | -| `Element Should Exist` | ${root} | {http://www.w3.org/1999/XSL/Transform}template/{http://www.w3.org/1999/xhtml}html | -| `Should Be Empty` | ${root.attrib} | - -As you can see, including the namespace URI in tag names makes xpaths -really long and complex. - -If you save the XML, ElementTree moves namespace information back to -``xmlns`` attributes. Unfortunately it does not restore the original -prefixes: - -| <ns0:stylesheet xmlns:ns0="http://www.w3.org/1999/XSL/Transform"> -| <ns0:template match="/"> -| <ns1:html xmlns:ns1="http://www.w3.org/1999/xhtml"></ns1:html> -| </ns0:template> -| </ns0:stylesheet> - -The resulting output is semantically same as the original, but mangling -prefixes like this may still not be desirable. Notice also that the actual -output depends slightly on ElementTree version. - -== Default namespace handling == - -Because the way ElementTree handles namespaces makes xpaths so complicated, -this library, by default, strips namespaces from tag names and moves that -information back to ``xmlns`` attributes. How this works in practice is -shown by the example below, where ``${NS}`` variable contains the same XML -document as in the previous example. - -| ${root} = | `Parse XML` | ${NS} | -| `Should Be Equal` | ${root.tag} | stylesheet | -| `Element Should Exist` | ${root} | template/html | -| `Element Attribute Should Be` | ${root} | xmlns | http://www.w3.org/1999/XSL/Transform | -| `Element Attribute Should Be` | ${root} | xmlns | http://www.w3.org/1999/xhtml | xpath=template/html | - -Now that tags do not contain namespace information, xpaths are simple again. - -A minor limitation of this approach is that namespace prefixes are lost. -As a result the saved output is not exactly same as the original one in -this case either: - -| <stylesheet xmlns="http://www.w3.org/1999/XSL/Transform"> -| <template match="/"> -| <html xmlns="http://www.w3.org/1999/xhtml"></html> -| </template> -| </stylesheet> - -Also this output is semantically same as the original. If the original XML -had only default namespaces, the output would also look identical. - -== Namespaces when using lxml == - -This library handles namespaces same way both when `using lxml` and when -not using it. There are, however, differences how lxml internally handles -namespaces compared to the standard ElementTree. The main difference is -that lxml stores information about namespace prefixes and they are thus -preserved if XML is saved. Another visible difference is that lxml includes -namespace information in child elements got with `Get Element` if the -parent element has namespaces. - -== Stripping namespaces altogether == - -Because namespaces often add unnecessary complexity, `Parse XML` supports -stripping them altogether by using ``strip_namespaces=True``. When this -option is enabled, namespaces are not shown anywhere nor are they included -if XML is saved. - -== Attribute namespaces == - -Attributes in XML documents are, by default, in the same namespaces as -the element they belong to. It is possible to use different namespaces -by using prefixes, but this is pretty rare. - -If an attribute has a namespace prefix, ElementTree will replace it with -Clark Notation the same way it handles elements. Because stripping -namespaces from attributes could cause attribute conflicts, this library -does not handle attribute namespaces at all. Thus the following example -works the same way regardless how namespaces are handled. - -| ${root} = | `Parse XML` | <root id="1" ns:id="2" xmlns:ns="http://my.ns"/> | -| `Element Attribute Should Be` | ${root} | id | 1 | -| `Element Attribute Should Be` | ${root} | {http://my.ns}id | 2 | - -= Boolean arguments = - -Some keywords accept arguments that are handled as Boolean values true or -false. If such an argument is given as a string, it is considered false if -it is an empty string or equal to ``FALSE``, ``NONE``, ``NO``, ``OFF`` or -``0``, case-insensitively. Other strings are considered true regardless -their value, and other argument types are tested using the same -[http://docs.python.org/library/stdtypes.html#truth|rules as in Python]. - -True examples: -| `Parse XML` | ${XML} | keep_clark_notation=True | # Strings are generally true. | -| `Parse XML` | ${XML} | keep_clark_notation=yes | # Same as the above. | -| `Parse XML` | ${XML} | keep_clark_notation=${TRUE} | # Python ``True`` is true. | -| `Parse XML` | ${XML} | keep_clark_notation=${42} | # Numbers other than 0 are true. | - -False examples: -| `Parse XML` | ${XML} | keep_clark_notation=False | # String ``false`` is false. | -| `Parse XML` | ${XML} | keep_clark_notation=no | # Also string ``no`` is false. | -| `Parse XML` | ${XML} | keep_clark_notation=${EMPTY} | # Empty string is false. | -| `Parse XML` | ${XML} | keep_clark_notation=${FALSE} | # Python ``False`` is false. | - -Considering string ``NONE`` false is new in Robot Framework 3.0.3 and -considering also ``OFF`` and ``0`` false is new in Robot Framework 3.1. - -== Pattern matching == - -Some keywords, for example `Elements Should Match`, support so called -[http://en.wikipedia.org/wiki/Glob_(programming)|glob patterns] where: - -| ``*`` | matches any string, even an empty string | -| ``?`` | matches any single character | -| ``[chars]`` | matches one character in the bracket | -| ``[!chars]`` | matches one character not in the bracket | -| ``[a-z]`` | matches one character from the range in the bracket | -| ``[!a-z]`` | matches one character not from the range in the bracket | - -Unlike with glob patterns normally, path separator characters ``/`` and -``\`` and the newline character ``\n`` are matches by the above -wildcards. - -Support for brackets like ``[abc]`` and ``[!a-z]`` is new in -Robot Framework 3.1 - - -use_lxml=False - -Import library with optionally lxml mode enabled. - -By default this library uses Python's standard -[http://docs.python.org/library/xml.etree.elementtree.html|ElementTree] -module for parsing XML. If ``use_lxml`` argument is given a true value -(see `Boolean arguments`), the library will use [http://lxml.de|lxml] -module instead. See `Using lxml` section for benefits provided by lxml. - -Using lxml requires that the lxml module is installed on the system. -If lxml mode is enabled but the module is not installed, this library -will emit a warning and revert back to using the standard ElementTree. - - - - - -source -element -index=None -xpath=. - -Adds a child element to the specified element. - -The element to whom to add the new element is specified using ``source`` -and ``xpath``. They have exactly the same semantics as with `Get Element` -keyword. The resulting XML structure is returned, and if the ``source`` -is an already parsed XML structure, it is also modified in place. - -The ``element`` to add can be specified as a path to an XML file or -as a string containing XML, or it can be an already parsed XML element. -The element is copied before adding so modifying either the original -or the added element has no effect on the other -. -The element is added as the last child by default, but a custom index -can be used to alter the position. Indices start from zero (0 = first -position, 1 = second position, etc.), and negative numbers refer to -positions at the end (-1 = second last position, -2 = third last, etc.). - -Examples using ``${XML}`` structure from `Example`: -| Add Element | ${XML} | <new id="x"><c1/></new> | -| Add Element | ${XML} | <c2/> | xpath=new | -| Add Element | ${XML} | <c3/> | index=1 | xpath=new | -| ${new} = | Get Element | ${XML} | new | -| Elements Should Be Equal | ${new} | <new id="x"><c1/><c3/><c2/></new> | - -Use `Remove Element` or `Remove Elements` to remove elements. - - - - - -source -xpath=. -clear_tail=False - -Clears the contents of the specified element. - -The element to clear is specified using ``source`` and ``xpath``. They -have exactly the same semantics as with `Get Element` keyword. -The resulting XML structure is returned, and if the ``source`` is -an already parsed XML structure, it is also modified in place. - -Clearing the element means removing its text, attributes, and children. -Element's tail text is not removed by default, but that can be changed -by giving ``clear_tail`` a true value (see `Boolean arguments`). See -`Element attributes` section for more information about tail in -general. - -Examples using ``${XML}`` structure from `Example`: -| Clear Element | ${XML} | xpath=first | -| ${first} = | Get Element | ${XML} | xpath=first | -| Elements Should Be Equal | ${first} | <first/> | -| Clear Element | ${XML} | xpath=html/p/b | clear_tail=yes | -| Element Text Should Be | ${XML} | Text with italics. | xpath=html/p | normalize_whitespace=yes | -| Clear Element | ${XML} | -| Elements Should Be Equal | ${XML} | <example/> | - -Use `Remove Element` to remove the whole element. - - - - - -source -xpath=. - -Returns a copy of the specified element. - -The element to copy is specified using ``source`` and ``xpath``. They -have exactly the same semantics as with `Get Element` keyword. - -If the copy or the original element is modified afterwards, the changes -have no effect on the other. - -Examples using ``${XML}`` structure from `Example`: -| ${elem} = | Get Element | ${XML} | xpath=first | -| ${copy1} = | Copy Element | ${elem} | -| ${copy2} = | Copy Element | ${XML} | xpath=first | -| Set Element Text | ${XML} | new text | xpath=first | -| Set Element Attribute | ${copy1} | id | new | -| Elements Should Be Equal | ${elem} | <first id="1">new text</first> | -| Elements Should Be Equal | ${copy1} | <first id="new">text</first> | -| Elements Should Be Equal | ${copy2} | <first id="1">text</first> | - - - - - -source -name -expected -xpath=. -message=None - -Verifies that the specified attribute is ``expected``. - -The element whose attribute is verified is specified using ``source`` -and ``xpath``. They have exactly the same semantics as with -`Get Element` keyword. - -The keyword passes if the attribute ``name`` of the element is equal to -the ``expected`` value, and otherwise it fails. The default error -message can be overridden with the ``message`` argument. - -To test that the element does not have a certain attribute, Python -``None`` (i.e. variable ``${NONE}``) can be used as the expected value. -A cleaner alternative is using `Element Should Not Have Attribute`. - -Examples using ``${XML}`` structure from `Example`: -| Element Attribute Should Be | ${XML} | id | 1 | xpath=first | -| Element Attribute Should Be | ${XML} | id | ${NONE} | | - -See also `Element Attribute Should Match` and `Get Element Attribute`. - - - - - -source -name -pattern -xpath=. -message=None - -Verifies that the specified attribute matches ``expected``. - -This keyword works exactly like `Element Attribute Should Be` except -that the expected value can be given as a pattern that the attribute of -the element must match. - -Pattern matching is similar as matching files in a shell with -``*``, ``?`` and ``[chars]`` acting as wildcards. See the -`Pattern matching` section for more information. - -Examples using ``${XML}`` structure from `Example`: -| Element Attribute Should Match | ${XML} | id | ? | xpath=first | -| Element Attribute Should Match | ${XML} | id | c*d | xpath=third/second | - - - - - -source -xpath=. -message=None - -Verifies that one or more element match the given ``xpath``. - -Arguments ``source`` and ``xpath`` have exactly the same semantics as -with `Get Elements` keyword. Keyword passes if the ``xpath`` matches -one or more elements in the ``source``. The default error message can -be overridden with the ``message`` argument. - -See also `Element Should Not Exist` as well as `Get Element Count` -that this keyword uses internally. - - - - - -source -xpath=. -message=None - -Verifies that no element match the given ``xpath``. - -Arguments ``source`` and ``xpath`` have exactly the same semantics as -with `Get Elements` keyword. Keyword fails if the ``xpath`` matches any -element in the ``source``. The default error message can be overridden -with the ``message`` argument. - -See also `Element Should Exist` as well as `Get Element Count` -that this keyword uses internally. - - - - - -source -name -xpath=. -message=None - -Verifies that the specified element does not have attribute ``name``. - -The element whose attribute is verified is specified using ``source`` -and ``xpath``. They have exactly the same semantics as with -`Get Element` keyword. - -The keyword fails if the specified element has attribute ``name``. The -default error message can be overridden with the ``message`` argument. - -Examples using ``${XML}`` structure from `Example`: -| Element Should Not Have Attribute | ${XML} | id | -| Element Should Not Have Attribute | ${XML} | xxx | xpath=first | - -See also `Get Element Attribute`, `Get Element Attributes`, -`Element Text Should Be` and `Element Text Should Match`. - - - - - -source -expected -xpath=. -normalize_whitespace=False -message=None - -Verifies that the text of the specified element is ``expected``. - -The element whose text is verified is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. - -The text to verify is got from the specified element using the same -logic as with `Get Element Text`. This includes optional whitespace -normalization using the ``normalize_whitespace`` option. - -The keyword passes if the text of the element is equal to the -``expected`` value, and otherwise it fails. The default error message -can be overridden with the ``message`` argument. Use `Element Text -Should Match` to verify the text against a pattern instead of an exact -value. - -Examples using ``${XML}`` structure from `Example`: -| Element Text Should Be | ${XML} | text | xpath=first | -| Element Text Should Be | ${XML} | ${EMPTY} | xpath=second/child | -| ${paragraph} = | Get Element | ${XML} | xpath=html/p | -| Element Text Should Be | ${paragraph} | Text with bold and italics. | normalize_whitespace=yes | - - - - - -source -pattern -xpath=. -normalize_whitespace=False -message=None - -Verifies that the text of the specified element matches ``expected``. - -This keyword works exactly like `Element Text Should Be` except that -the expected value can be given as a pattern that the text of the -element must match. - -Pattern matching is similar as matching files in a shell with -``*``, ``?`` and ``[chars]`` acting as wildcards. See the -`Pattern matching` section for more information. - -Examples using ``${XML}`` structure from `Example`: -| Element Text Should Match | ${XML} | t??? | xpath=first | -| ${paragraph} = | Get Element | ${XML} | xpath=html/p | -| Element Text Should Match | ${paragraph} | Text with * and *. | normalize_whitespace=yes | - - - - - -source -xpath=. -encoding=None - -Returns the string representation of the specified element. - -The element to convert to a string is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. - -By default the string is returned as Unicode. If ``encoding`` argument -is given any value, the string is returned as bytes in the specified -encoding. The resulting string never contains the XML declaration. - -See also `Log Element` and `Save XML`. - - - - - -source -expected -exclude_children=False -normalize_whitespace=False - -Verifies that the given ``source`` element is equal to ``expected``. - -Both ``source`` and ``expected`` can be given as a path to an XML file, -as a string containing XML, or as an already parsed XML element -structure. See `introduction` for more information about parsing XML in -general. - -The keyword passes if the ``source`` element and ``expected`` element -are equal. This includes testing the tag names, texts, and attributes -of the elements. By default also child elements are verified the same -way, but this can be disabled by setting ``exclude_children`` to a -true value (see `Boolean arguments`). - -All texts inside the given elements are verified, but possible text -outside them is not. By default texts must match exactly, but setting -``normalize_whitespace`` to a true value makes text verification -independent on newlines, tabs, and the amount of spaces. For more -details about handling text see `Get Element Text` keyword and -discussion about elements' `text` and `tail` attributes in the -`introduction`. - -Examples using ``${XML}`` structure from `Example`: -| ${first} = | Get Element | ${XML} | first | -| Elements Should Be Equal | ${first} | <first id="1">text</first> | -| ${p} = | Get Element | ${XML} | html/p | -| Elements Should Be Equal | ${p} | <p>Text with <b>bold</b> and <i>italics</i>.</p> | normalize_whitespace=yes | -| Elements Should Be Equal | ${p} | <p>Text with</p> | exclude | normalize | - -The last example may look a bit strange because the ``<p>`` element -only has text ``Text with``. The reason is that rest of the text -inside ``<p>`` actually belongs to the child elements. This includes -the ``.`` at the end that is the `tail` text of the ``<i>`` element. - -See also `Elements Should Match`. - - - - - -source -expected -exclude_children=False -normalize_whitespace=False - -Verifies that the given ``source`` element matches ``expected``. - -This keyword works exactly like `Elements Should Be Equal` except that -texts and attribute values in the expected value can be given as -patterns. - -Pattern matching is similar as matching files in a shell with -``*``, ``?`` and ``[chars]`` acting as wildcards. See the -`Pattern matching` section for more information. - -Examples using ``${XML}`` structure from `Example`: -| ${first} = | Get Element | ${XML} | first | -| Elements Should Match | ${first} | <first id="?">*</first> | - -See `Elements Should Be Equal` for more examples. - - - - - -source -expression -context=. - -Evaluates the given xpath expression and returns results. - -The element in which context the expression is executed is specified -using ``source`` and ``context`` arguments. They have exactly the same -semantics as ``source`` and ``xpath`` arguments have with `Get Element` -keyword. - -The xpath expression to evaluate is given as ``expression`` argument. -The result of the evaluation is returned as-is. - -Examples using ``${XML}`` structure from `Example`: -| ${count} = | Evaluate Xpath | ${XML} | count(third/*) | -| Should Be Equal | ${count} | ${3} | -| ${text} = | Evaluate Xpath | ${XML} | string(descendant::second[last()]/@id) | -| Should Be Equal | ${text} | child | -| ${bold} = | Evaluate Xpath | ${XML} | boolean(preceding-sibling::*[1] = 'bold') | context=html/p/i | -| Should Be Equal | ${bold} | ${True} | - -This keyword works only if lxml mode is taken into use when `importing` -the library. - - - - - -source -xpath=. - -Returns the child elements of the specified element as a list. - -The element whose children to return is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. - -All the direct child elements of the specified element are returned. -If the element has no children, an empty list is returned. - -Examples using ``${XML}`` structure from `Example`: -| ${children} = | Get Child Elements | ${XML} | | -| Length Should Be | ${children} | 4 | | -| ${children} = | Get Child Elements | ${XML} | xpath=first | -| Should Be Empty | ${children} | | | - - - - - -source -xpath=. - -Returns an element in the ``source`` matching the ``xpath``. - -The ``source`` can be a path to an XML file, a string containing XML, or -an already parsed XML element. The ``xpath`` specifies which element to -find. See the `introduction` for more details about both the possible -sources and the supported xpath syntax. - -The keyword fails if more, or less, than one element matches the -``xpath``. Use `Get Elements` if you want all matching elements to be -returned. - -Examples using ``${XML}`` structure from `Example`: -| ${element} = | Get Element | ${XML} | second | -| ${child} = | Get Element | ${element} | child | - -`Parse XML` is recommended for parsing XML when the whole structure -is needed. It must be used if there is a need to configure how XML -namespaces are handled. - -Many other keywords use this keyword internally, and keywords modifying -XML are typically documented to both to modify the given source and -to return it. Modifying the source does not apply if the source is -given as a string. The XML structure parsed based on the string and -then modified is nevertheless returned. - - - - - -source -name -xpath=. -default=None - -Returns the named attribute of the specified element. - -The element whose attribute to return is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. - -The value of the attribute ``name`` of the specified element is returned. -If the element does not have such element, the ``default`` value is -returned instead. - -Examples using ``${XML}`` structure from `Example`: -| ${attribute} = | Get Element Attribute | ${XML} | id | xpath=first | -| Should Be Equal | ${attribute} | 1 | | | -| ${attribute} = | Get Element Attribute | ${XML} | xx | xpath=first | default=value | -| Should Be Equal | ${attribute} | value | | | - -See also `Get Element Attributes`, `Element Attribute Should Be`, -`Element Attribute Should Match` and `Element Should Not Have Attribute`. - - - - - -source -xpath=. - -Returns all attributes of the specified element. - -The element whose attributes to return is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. - -Attributes are returned as a Python dictionary. It is a copy of the -original attributes so modifying it has no effect on the XML structure. - -Examples using ``${XML}`` structure from `Example`: -| ${attributes} = | Get Element Attributes | ${XML} | first | -| Dictionary Should Contain Key | ${attributes} | id | | -| ${attributes} = | Get Element Attributes | ${XML} | third | -| Should Be Empty | ${attributes} | | | - -Use `Get Element Attribute` to get the value of a single attribute. - - - - - -source -xpath=. - -Returns and logs how many elements the given ``xpath`` matches. - -Arguments ``source`` and ``xpath`` have exactly the same semantics as -with `Get Elements` keyword that this keyword uses internally. - -See also `Element Should Exist` and `Element Should Not Exist`. - - - - - -source -xpath=. -normalize_whitespace=False - -Returns all text of the element, possibly whitespace normalized. - -The element whose text to return is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. - -This keyword returns all the text of the specified element, including -all the text its children and grandchildren contain. If the element -has no text, an empty string is returned. The returned text is thus not -always the same as the `text` attribute of the element. - -By default all whitespace, including newlines and indentation, inside -the element is returned as-is. If ``normalize_whitespace`` is given -a true value (see `Boolean arguments`), then leading and trailing -whitespace is stripped, newlines and tabs converted to spaces, and -multiple spaces collapsed into one. This is especially useful when -dealing with HTML data. - -Examples using ``${XML}`` structure from `Example`: -| ${text} = | Get Element Text | ${XML} | first | -| Should Be Equal | ${text} | text | | -| ${text} = | Get Element Text | ${XML} | second/child | -| Should Be Empty | ${text} | | | -| ${paragraph} = | Get Element | ${XML} | html/p | -| ${text} = | Get Element Text | ${paragraph} | normalize_whitespace=yes | -| Should Be Equal | ${text} | Text with bold and italics. | - -See also `Get Elements Texts`, `Element Text Should Be` and -`Element Text Should Match`. - - - - - -source -xpath - -Returns a list of elements in the ``source`` matching the ``xpath``. - -The ``source`` can be a path to an XML file, a string containing XML, or -an already parsed XML element. The ``xpath`` specifies which element to -find. See the `introduction` for more details. - -Elements matching the ``xpath`` are returned as a list. If no elements -match, an empty list is returned. Use `Get Element` if you want to get -exactly one match. - -Examples using ``${XML}`` structure from `Example`: -| ${children} = | Get Elements | ${XML} | third/child | -| Length Should Be | ${children} | 2 | | -| ${children} = | Get Elements | ${XML} | first/child | -| Should Be Empty | ${children} | | | - - - - - -source -xpath -normalize_whitespace=False - -Returns text of all elements matching ``xpath`` as a list. - -The elements whose text to return is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Elements` -keyword. - -The text of the matched elements is returned using the same logic -as with `Get Element Text`. This includes optional whitespace -normalization using the ``normalize_whitespace`` option. - -Examples using ``${XML}`` structure from `Example`: -| @{texts} = | Get Elements Texts | ${XML} | third/child | -| Length Should Be | ${texts} | 2 | | -| Should Be Equal | @{texts}[0] | more text | | -| Should Be Equal | @{texts}[1] | ${EMPTY} | | - - - - - -source -level=INFO -xpath=. - -Logs the string representation of the specified element. - -The element specified with ``source`` and ``xpath`` is first converted -into a string using `Element To String` keyword internally. The -resulting string is then logged using the given ``level``. - -The logged string is also returned. - - - - - -source -keep_clark_notation=False -strip_namespaces=False - -Parses the given XML file or string into an element structure. - -The ``source`` can either be a path to an XML file or a string -containing XML. In both cases the XML is parsed into ElementTree -[http://docs.python.org/library/xml.etree.elementtree.html#element-objects|element structure] -and the root element is returned. Possible comments and processing -instructions in the source XML are removed. - -As discussed in `Handling XML namespaces` section, this keyword, by -default, removes namespace information ElementTree has added to tag -names and moves it into ``xmlns`` attributes. This typically eases -handling XML documents with namespaces considerably. If you do not -want that to happen, or want to avoid the small overhead of going -through the element structure when your XML does not have namespaces, -you can disable this feature by giving ``keep_clark_notation`` argument -a true value (see `Boolean arguments`). - -If you want to strip namespace information altogether so that it is -not included even if XML is saved, you can give a true value to -``strip_namespaces`` argument. This functionality is new in Robot -Framework 3.0.2. - -Examples: -| ${root} = | Parse XML | <root><child/></root> | -| ${xml} = | Parse XML | ${CURDIR}/test.xml | keep_clark_notation=True | -| ${xml} = | Parse XML | ${CURDIR}/test.xml | strip_namespaces=True | - -Use `Get Element` keyword if you want to get a certain element and not -the whole structure. See `Parsing XML` section for more details and -examples. - - - - - -source -xpath= -remove_tail=False - -Removes the element matching ``xpath`` from the ``source`` structure. - -The element to remove from the ``source`` is specified with ``xpath`` -using the same semantics as with `Get Element` keyword. The resulting -XML structure is returned, and if the ``source`` is an already parsed -XML structure, it is also modified in place. - -The keyword fails if ``xpath`` does not match exactly one element. -Use `Remove Elements` to remove all matched elements. - -Element's tail text is not removed by default, but that can be changed -by giving ``remove_tail`` a true value (see `Boolean arguments`). See -`Element attributes` section for more information about `tail` in -general. - -Examples using ``${XML}`` structure from `Example`: -| Remove Element | ${XML} | xpath=second | -| Element Should Not Exist | ${XML} | xpath=second | -| Remove Element | ${XML} | xpath=html/p/b | remove_tail=yes | -| Element Text Should Be | ${XML} | Text with italics. | xpath=html/p | normalize_whitespace=yes | - - - - - -source -name -xpath=. - -Removes attribute ``name`` from the specified element. - -The element whose attribute to remove is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. The resulting XML structure is returned, and if the ``source`` -is an already parsed XML structure, it is also modified in place. - -It is not a failure to remove a non-existing attribute. Use `Remove -Element Attributes` to remove all attributes and `Set Element Attribute` -to set them. - -Examples using ``${XML}`` structure from `Example`: -| Remove Element Attribute | ${XML} | id | xpath=first | -| Element Should Not Have Attribute | ${XML} | id | xpath=first | - -Can only remove an attribute from a single element. Use `Remove Elements -Attribute` to remove an attribute of multiple elements in one call. - - - - - -source -xpath=. - -Removes all attributes from the specified element. - -The element whose attributes to remove is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. The resulting XML structure is returned, and if the ``source`` -is an already parsed XML structure, it is also modified in place. - -Use `Remove Element Attribute` to remove a single attribute and -`Set Element Attribute` to set them. - -Examples using ``${XML}`` structure from `Example`: -| Remove Element Attributes | ${XML} | xpath=first | -| Element Should Not Have Attribute | ${XML} | id | xpath=first | - -Can only remove attributes from a single element. Use `Remove Elements -Attributes` to remove all attributes of multiple elements in one call. - - - - - -source -xpath= -remove_tail=False - -Removes all elements matching ``xpath`` from the ``source`` structure. - -The elements to remove from the ``source`` are specified with ``xpath`` -using the same semantics as with `Get Elements` keyword. The resulting -XML structure is returned, and if the ``source`` is an already parsed -XML structure, it is also modified in place. - -It is not a failure if ``xpath`` matches no elements. Use `Remove -Element` to remove exactly one element. - -Element's tail text is not removed by default, but that can be changed -by using ``remove_tail`` argument similarly as with `Remove Element`. - -Examples using ``${XML}`` structure from `Example`: -| Remove Elements | ${XML} | xpath=*/child | -| Element Should Not Exist | ${XML} | xpath=second/child | -| Element Should Not Exist | ${XML} | xpath=third/child | - - - - - -source -name -xpath=. - -Removes attribute ``name`` from the specified elements. - -Like `Remove Element Attribute` but removes the attribute of all -elements matching the given ``xpath``. - - - - - -source -xpath=. - -Removes all attributes from the specified elements. - -Like `Remove Element Attributes` but removes all attributes of all -elements matching the given ``xpath``. - - - - - -source -path -encoding=UTF-8 - -Saves the given element to the specified file. - -The element to save is specified with ``source`` using the same -semantics as with `Get Element` keyword. - -The file where the element is saved is denoted with ``path`` and the -encoding to use with ``encoding``. The resulting file always contains -the XML declaration. - -The resulting XML file may not be exactly the same as the original: -- Comments and processing instructions are always stripped. -- Possible doctype and namespace prefixes are only preserved when - `using lxml`. -- Other small differences are possible depending on the ElementTree - or lxml version. - -Use `Element To String` if you just need a string representation of -the element. - - - - - -source -name -value -xpath=. - -Sets attribute ``name`` of the specified element to ``value``. - -The element whose attribute to set is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. The resulting XML structure is returned, and if the ``source`` -is an already parsed XML structure, it is also modified in place. - -It is possible to both set new attributes and to overwrite existing. -Use `Remove Element Attribute` or `Remove Element Attributes` for -removing them. - -Examples using ``${XML}`` structure from `Example`: -| Set Element Attribute | ${XML} | attr | value | -| Element Attribute Should Be | ${XML} | attr | value | -| Set Element Attribute | ${XML} | id | new | xpath=first | -| Element Attribute Should Be | ${XML} | id | new | xpath=first | - -Can only set an attribute of a single element. Use `Set Elements -Attribute` to set an attribute of multiple elements in one call. - - - - - -source -tag -xpath=. - -Sets the tag of the specified element. - -The element whose tag to set is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. The resulting XML structure is returned, and if the ``source`` -is an already parsed XML structure, it is also modified in place. - -Examples using ``${XML}`` structure from `Example`: -| Set Element Tag | ${XML} | newTag | -| Should Be Equal | ${XML.tag} | newTag | -| Set Element Tag | ${XML} | xxx | xpath=second/child | -| Element Should Exist | ${XML} | second/xxx | -| Element Should Not Exist | ${XML} | second/child | - -Can only set the tag of a single element. Use `Set Elements Tag` to set -the tag of multiple elements in one call. - - - - - -source -text=None -tail=None -xpath=. - -Sets text and/or tail text of the specified element. - -The element whose text to set is specified using ``source`` and -``xpath``. They have exactly the same semantics as with `Get Element` -keyword. The resulting XML structure is returned, and if the ``source`` -is an already parsed XML structure, it is also modified in place. - -Element's text and tail text are changed only if new ``text`` and/or -``tail`` values are given. See `Element attributes` section for more -information about `text` and `tail` in general. - -Examples using ``${XML}`` structure from `Example`: -| Set Element Text | ${XML} | new text | xpath=first | -| Element Text Should Be | ${XML} | new text | xpath=first | -| Set Element Text | ${XML} | tail=& | xpath=html/p/b | -| Element Text Should Be | ${XML} | Text with bold&italics. | xpath=html/p | normalize_whitespace=yes | -| Set Element Text | ${XML} | slanted | !! | xpath=html/p/i | -| Element Text Should Be | ${XML} | Text with bold&slanted!! | xpath=html/p | normalize_whitespace=yes | - -Can only set the text/tail of a single element. Use `Set Elements Text` -to set the text/tail of multiple elements in one call. - - - - - -source -name -value -xpath=. - -Sets attribute ``name`` of the specified elements to ``value``. - -Like `Set Element Attribute` but sets the attribute of all elements -matching the given ``xpath``. - - - - - -source -tag -xpath=. - -Sets the tag of the specified elements. - -Like `Set Element Tag` but sets the tag of all elements matching -the given ``xpath``. - - - - - -source -text=None -tail=None -xpath=. - -Sets text and/or tail text of the specified elements. - -Like `Set Element Text` but sets the text or tail of all elements -matching the given ``xpath``. - - - - -- GitLab From 2bd67366a6430dab7f4a806a19d9668ae5547c87 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 4 Nov 2020 16:04:16 +0100 Subject: [PATCH 110/116] added SOL009 index file --- indexes/sol_009_index.csv | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 indexes/sol_009_index.csv diff --git a/indexes/sol_009_index.csv b/indexes/sol_009_index.csv new file mode 100644 index 000000000..cf6391a10 --- /dev/null +++ b/indexes/sol_009_index.csv @@ -0,0 +1,41 @@ +8, NFV-MANO Management Reference Point, SOL009 +8.3.1,NFV MANO Configuration And Information Management Interface +8.3.1.1,NFV MANO Entity Endpoint, NFVMANOEntity.robot +8.3.1.2,Change NFV MANO Entity State Task Endpoint, ChangeNFVMANOEntityStateTask.robot +8.3.1.3,Change State Operation Occurrences Endpoint, ChangeStateOperationOccurrences.robot +8.3.1.4,Individual State Change Operation Occurrence Endpoint, IndividualStateChangeOperationOccurrence.robot +8.3.1.5,NFV MANO Service Interfaces Endpoint, NFVMANOServiceInterfaces.robot +8.3.1.6,Individual NFV MANO Service Interface Endpoint, IndividualNFVMANOServiceInterface.robot +8.3.1.7,Change Interface State Task Endpoint, ChangeInterfaceStateTask.robot +8.3.1.8,Peer Entities Endpoint, PeerEntities.robot +8.3.1.9,Individual Peer Entity Endpoint, IndividualPeerEntity.robot +8.3.1.10,Subscriptions Endpoint, Subscriptions.robot +8.3.1.11,Individual Subscription Resource Endpoint, IndividualSubscription.robot +8.3.1.12,Notification Endpoint, NotificationEndpoint.robot +8.3.1.13,API Version Endpoint, ApiVersion.robot +8.3.2,NFV MANO Performance Management interface +8.3.2.1,PM Jobs Endpoint, PMJobs.robot +8.3.2.2,Individual Pm Job Endpoint, IndividualPmJob.robot +8.3.2.3,Individual Report Endpoint, IndividualReport.robot +8.3.2.4,Thresholds Endpoint, Thresholds.robot +8.3.2.5,Individual Threshold Endpoint, IndividualThreshold.robot +8.3.2.6,Subscriptions Endpoint, Subscriptions.robot +8.3.2.7,Individual Subscription Endpoint, IndividualSubscription.robot +8.3.2.8,Notification Endpoint,PerformanceManagementNotification.robot +8.3.2.9,API Version Endpoint, ApiVersion.robot +8.3.3,NFV MANO Fault Management interface +8.3.3.1,Alarms Endpoint, Alarms.robot +8.3.3.2,Individual Alarm Endpoint, IndividualAlarm.robot +8.3.3.3,Subscriptions Endpoint, Subscriptions.robot +8.3.3.4,Individual Subscription Endpoint, IndividualSubscription.robot +8.3.3.5,Notification Endpoint, NotificationEndpoint.robot +8.3.3.6, API Version Endpoint, ApiVersion.robot +8.3.4,NFV MANO Log Management interface +8.3.4.1,Logging Jobs Endpoint, LoggingJobs.robot +8.3.4.2,Individual Logging Job Endpoint, IndividualLoggingJob.robot +8.3.4.3,Individual Report Endpoint, IndividualReport.robot +8.3.4.4,Compile Log Task Endpoint, CompileLogTask.robot +8.3.4.5,Subscriptions Resource Endpoint, Subscriptions.robot +8.3.4.6,Individual Subscription Endpoint, IndividualSubscription.robot +8.3.4.7,Notification Endpoint, NotificationEndpoint.robot +8.3.4.8,API Version Endpoint, ApiVersion.robot -- GitLab From 7ef8af9ad8e0cfb7be4c28e7b7c113654fdc943b Mon Sep 17 00:00:00 2001 From: zafar Date: Mon, 23 Nov 2020 18:39:40 +0500 Subject: [PATCH 111/116] Fix for 'Incorrect API version endpoints' bug --- .../ApiVersion.robot | 20 +++++++++---------- .../NFVMANOLogManagement-API/ApiVersion.robot | 20 +++++++++---------- .../ApiVersion.robot | 20 +++++++++---------- .../ApiVersion.robot | 20 +++++++++---------- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot b/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot index 0dde1341d..fc51479fd 100644 --- a/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot +++ b/SOL009/NFVMANOFaultManagement-API/ApiVersion.robot @@ -132,70 +132,70 @@ DELETE API Version with apiMajorVerion - Method not implemented POST API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/api_version + Post ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/api_version + Get ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/api_version + Put ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/api_version + Patch ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/api_version + Delete ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} POST API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} diff --git a/SOL009/NFVMANOLogManagement-API/ApiVersion.robot b/SOL009/NFVMANOLogManagement-API/ApiVersion.robot index f97546b9e..ddd681ced 100644 --- a/SOL009/NFVMANOLogManagement-API/ApiVersion.robot +++ b/SOL009/NFVMANOLogManagement-API/ApiVersion.robot @@ -132,70 +132,70 @@ DELETE API Version with apiMajorVerion - Method not implemented POST API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/api_version + Post ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/api_version + Get ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/api_version + Put ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/api_version + Patch ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/api_version + Delete ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} POST API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} diff --git a/SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot b/SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot index 104a87b26..466df91ae 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/ApiVersion.robot @@ -132,70 +132,70 @@ DELETE API Version with apiMajorVerion - Method not implemented POST API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/api_version + Post ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/api_version + Get ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/api_version + Put ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/api_version + Patch ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/api_version + Delete ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} POST API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot index b9c86942f..35c195242 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ApiVersion.robot @@ -132,70 +132,70 @@ DELETE API Version with apiMajorVerion - Method not implemented POST API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/api_version + Post ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/api_version + Get ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/api_version + Put ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/api_version + Patch ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/api_version + Delete ${apiRoot}/${apiName}/api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} POST API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Post ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} GET API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Get ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PUT API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Put ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} PATCH API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Patch ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} DELETE API Version with apiMajorVersion Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_version + Delete ${apiRoot}/${apiName}/${apiMajorVersion} /api_versions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} -- GitLab From 9a1a50165bd1a6076da2b4639f749e37b9b43ca3 Mon Sep 17 00:00:00 2001 From: uihassan Date: Tue, 24 Nov 2020 16:10:14 +0500 Subject: [PATCH 112/116] New Resource NotificationConsumer added in NFV-MANO CIM --- .../NotificationConsumer.robot | 69 +++++++++++++++++++ .../environment/variables.txt | 4 +- .../jsons/ChangeStateNotification.json | 18 +++++ .../jsons/InformationChangedNotification.json | 12 ++++ 4 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateNotification.json create mode 100644 SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/InformationChangedNotification.json diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot new file mode 100644 index 000000000..57923c351 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot @@ -0,0 +1,69 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Suite Setup Check resource existence and get CallbackUri + +*** Test Cases *** +Information Changed Notification + [Documentation] Test ID: 8.3.1.14.1 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + POST Information Changed Notification + Check HTTP Response Status Code Is 204 + +Change State Notification + [Documentation] Test ID: 8.3.1.14.2 + ... 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 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + POST Change State Notification + Check HTTP Response Status Code Is 204 + +*** Keywords *** +Check resource existence and get CallbackUri + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + Integer response status 200 + Validate Json response body CimSubscription.schema.json + Set Global Variable ${callbackResp} response body callbackUri + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Post Information Changed Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/InformationChangedNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Post Change State Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/ChangeStateNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} changeStateOpOccId=${changeStateOpOccId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index e94ee646d..35efe08ef 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -64,4 +64,6 @@ ${state} operational ${stateAction} START ${retry} 2 min -${polling} 10 sec \ No newline at end of file +${polling} 10 sec + +${callbackResp} 127.0.0.1 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateNotification.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateNotification.json new file mode 100644 index 000000000..c034b3bef --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/ChangeStateNotification.json @@ -0,0 +1,18 @@ +{{ + "id": "", + "notificationType": "ChangeStateNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "changeStateOpOccId": "{changeStateOpOccId}", + "stateChangedTime": "", + "changeStateOperationState": "PROCESSING", + "managedObjectRef": {{ + "type": "", + "objectId": "" + }} + "_links": {{ + "subscription": "" + "objectInstance": "", + "changeStateOpOcc": "" + }} +}} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/InformationChangedNotification.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/InformationChangedNotification.json new file mode 100644 index 000000000..4a1bd88e9 --- /dev/null +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/jsons/InformationChangedNotification.json @@ -0,0 +1,12 @@ +{{ + "id": "", + "notificationType": "InformationChangedNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "informationChangedTime": "", + "manoEntityId": "", + "changedInfo": "", + "_links": {{ + "subscription": "" + }} +}} \ No newline at end of file -- GitLab From bf79175c04fd01f7a105af3f18449ccfbd83da30 Mon Sep 17 00:00:00 2001 From: zafar Date: Tue, 24 Nov 2020 18:09:25 +0500 Subject: [PATCH 113/116] New Resource NotificationConsumer added in NFV-MANO PM --- .../NotificationConsumer.robot | 78 +++++++++++++++++++ ...ceInformationAvailabilityNotification.json | 14 ++++ .../jsons/ThresholdCrossedNotification.json | 17 ++++ .../NotificationConsumer.robot | 2 +- 4 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot create mode 100644 SOL009/NFVMANOPerformanceManagement-API/jsons/PerformanceInformationAvailabilityNotification.json create mode 100644 SOL009/NFVMANOPerformanceManagement-API/jsons/ThresholdCrossedNotification.json diff --git a/SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot b/SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot new file mode 100644 index 000000000..5ae44b57e --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot @@ -0,0 +1,78 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Resource environment/individualThresholds.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Suite Setup Check resource existence and get CallbackUri + + +*** Test Cases *** +Performance Information Available Notification + [Documentation] Test ID: 8.3.2.10.1 + ... Test title: Performance Information Available Notification + ... Test objective: The objective is to test that Performance Available Notification is delivered with success to the notification consumer + ... Pre-conditions: A subscription for performance available notification is available in the NFV-MANO. + ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + POST Performance Information Available Notification + Check HTTP Response Status Code Is 204 + +Threshold Crossed Notification + [Documentation] Test ID: 8.3.2.10.2 + ... Test title: Threshold Crossed Notification + ... Test objective: The objective is to test that Threshold Crossed Notification is delivered with success to the notification consumer + ... Pre-conditions: A subscription for threshold crosssed notification is available in the NFV-MANO. + ... Reference: clause 6.5.10.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + POST Threshold Crossed Notification + Check HTTP Response Status Code Is 204 + +*** Keywords *** +Check resource existence and get CallbackUri + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + Integer response status 200 + Validate Json response body PmSubscription.schema.json + Set Global Variable ${callbackResp} response body callbackUri + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +POST Performance Information Available Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/PerformanceInformationAvailabilityNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} objectInstanceId=${objectInstanceIds} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +POST Threshold Crossed Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/ThresholdCrossedNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} thresholdId=${thresholdId} objectInstanceId=${objectInstanceIds} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + + + + + + + diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/PerformanceInformationAvailabilityNotification.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/PerformanceInformationAvailabilityNotification.json new file mode 100644 index 000000000..5be4a1a38 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/PerformanceInformationAvailabilityNotification.json @@ -0,0 +1,14 @@ +{{ + "id": "", + "notificationType": "PerformanceInformationAvailableNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "objectType": "", + "objectInstanceId": "{objectInstanceId}", + "_links": {{ + "subscription": "" + "objectInstance": "", + "pmJob": "", + "performanceReport": "" + }} +}} \ No newline at end of file diff --git a/SOL009/NFVMANOPerformanceManagement-API/jsons/ThresholdCrossedNotification.json b/SOL009/NFVMANOPerformanceManagement-API/jsons/ThresholdCrossedNotification.json new file mode 100644 index 000000000..8984e0f66 --- /dev/null +++ b/SOL009/NFVMANOPerformanceManagement-API/jsons/ThresholdCrossedNotification.json @@ -0,0 +1,17 @@ +{{ + "id": "", + "notificationType": "ThresholdCrossedNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "thresholdId": "{thresholdId}", + "crossingDirection": "UP", + "objectType": "", + "objectInstanceId": "{objectInstanceId}", + "performanceMetric": "", + "performanceValue": "", + "_links": {{ + "subscription": "" + "objectInstance": "", + "threshold": "" + }} +}} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot index 57923c351..f7a1578f7 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot @@ -36,7 +36,7 @@ Check resource existence and get CallbackUri Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - Get ${apiRoot}/${apiName}/${apiMajorVersion}/pm_jobs/${pmJobId} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} Integer response status 200 Validate Json response body CimSubscription.schema.json Set Global Variable ${callbackResp} response body callbackUri -- GitLab From e2468562af7f68d089f64348d06a0d5cb903a4e7 Mon Sep 17 00:00:00 2001 From: zafar Date: Wed, 25 Nov 2020 16:33:48 +0500 Subject: [PATCH 114/116] New 'NotificationConsumer' resources added in NFV-MANO LM & FM interfaces --- .../NotificationConsumer.robot | 93 +++++++++++++++++++ .../environment/variables.txt | 4 +- .../jsons/AlarmClearedNotification.json | 12 +++ .../jsons/AlarmListRebuiltNotification.json | 10 ++ .../jsons/AlarmNotification.json | 21 +++++ .../NotificationConsumer.robot | 46 +++++++++ .../environment/variables.txt | 4 +- .../jsons/LogReportAvailableNotification.json | 12 +++ 8 files changed, 200 insertions(+), 2 deletions(-) create mode 100644 SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot create mode 100644 SOL009/NFVMANOFaultManagement-API/jsons/AlarmClearedNotification.json create mode 100644 SOL009/NFVMANOFaultManagement-API/jsons/AlarmListRebuiltNotification.json create mode 100644 SOL009/NFVMANOFaultManagement-API/jsons/AlarmNotification.json create mode 100644 SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot create mode 100644 SOL009/NFVMANOLogManagement-API/jsons/LogReportAvailableNotification.json diff --git a/SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot b/SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot new file mode 100644 index 000000000..83972fbec --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot @@ -0,0 +1,93 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Suite Setup Check resource existence and get CallbackUri + +*** Test Cases *** +Alarm Notification + [Documentation] Test ID: 8.3.3.7.1 + ... Test title: Alarm Notification + ... Test objective: The objective is to test that Alarm Notification is delivered with success to the notification consumer. + ... Pre-conditions: A subscription for alarm notification is available in the NFV-MANO. + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Post Alarm Notification + Check HTTP Response Status Code Is 204 + +Alarm Cleared Notification + [Documentation] Test ID: 8.3.3.7.2 + ... Test title: Alarm Cleared Notification + ... Test objective: The objective is to test that Alarm Cleared Notification is delivered with success to the notification consumer. + ... Pre-conditions: A subscription for alarm cleared notification is available in the NFV-MANO. + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Post Alarm Cleared Notification + Check HTTP Response Status Code Is 204 + +Alarm List Rebuilt Notification + [Documentation] Test ID: 8.3.3.7.3 + ... Test title: Alarm List Rebuilt Notification + ... Test objective: The objective is to test that Alarm List Rebuilt Notification is delivered with success to the notification consumer. + ... Pre-conditions: A subscription for alarm list rebuilt notification is available in the NFV-MANO. + ... Reference: clause 7.5.7.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Post Alarm List Rebuilt Notification + Check HTTP Response Status Code Is 204 + +*** Keywords *** +Check resource existence and get CallbackUri + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + Integer response status 200 + Validate Json response body FmSubscription.schema.json + Set Global Variable ${callbackResp} response body callbackUri + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Post Alarm Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/AlarmNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} alarmId=${alarmId} managedObjectId=${managedObjectId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Post Alarm Cleared Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/AlarmClearedNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} alarmId=${alarmId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + +Post Alarm List Rebuilt Notification + log Trying to perform a POST to get notifications + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/AlarmListRebuiltNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + diff --git a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt index fdb1ee9d3..e230f9438 100644 --- a/SOL009/NFVMANOFaultManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOFaultManagement-API/environment/variables.txt @@ -48,4 +48,6 @@ ${polling_interval} 10 sec ${notification_request} [] ${notification_response} [] -${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar \ No newline at end of file +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar + +${callbackResp} 127.0.0.1 \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/jsons/AlarmClearedNotification.json b/SOL009/NFVMANOFaultManagement-API/jsons/AlarmClearedNotification.json new file mode 100644 index 000000000..456d44801 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/jsons/AlarmClearedNotification.json @@ -0,0 +1,12 @@ +{{ + "id": "", + "notificationType": "AlarmClearedNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "alarmId": "{alarmId}", + "alarmClearedTime": "", + "_links": {{ + "subscription": "", + "alarm": "" + }} +}} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/jsons/AlarmListRebuiltNotification.json b/SOL009/NFVMANOFaultManagement-API/jsons/AlarmListRebuiltNotification.json new file mode 100644 index 000000000..11ec0adb8 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/jsons/AlarmListRebuiltNotification.json @@ -0,0 +1,10 @@ +{{ + "id": "", + "notificationType": "AlarmListRebuiltNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "_links": {{ + "subscription": "", + "alarms": "" + }} +}} \ No newline at end of file diff --git a/SOL009/NFVMANOFaultManagement-API/jsons/AlarmNotification.json b/SOL009/NFVMANOFaultManagement-API/jsons/AlarmNotification.json new file mode 100644 index 000000000..65510f3f9 --- /dev/null +++ b/SOL009/NFVMANOFaultManagement-API/jsons/AlarmNotification.json @@ -0,0 +1,21 @@ +{{ + "id": "", + "notificationType": "AlarmNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "alarm": {{ + "id": "{alarmId}", + "managedObjectId": "{managedObjectId}", + "perceivedSeverity": "MAJOR", + "eventTime": "", + "eventType": "COMMUNICATIONS_ALARM", + "probableCause": "", + "isRootCause": "TRUE", + "_links": {{ + "self": "" + }} + }}, + "_links": {{ + "subscription": "" + }} +}} \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot b/SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot new file mode 100644 index 000000000..b89a0eee1 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot @@ -0,0 +1,46 @@ +*** Settings *** +Library JSONSchemaLibrary schemas/ +Resource environment/variables.txt +Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary +Suite Setup Check resource existence and get CallbackUri + +*** Test Cases *** +Log Report Available Notification + [Documentation] Test ID: 8.3.4.9.1 + ... Test title: Log Report Available Notification + ... Test objective: The objective is to test that Log Report Available Notification is delivered with success to the notification consumer. + ... Pre-conditions: A subscription for log report available notification is available in the NFV-MANO. + ... Reference: clause 8.5.9.3.1 - ETSI GS NFV-SOL 009 [6] V3.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Post Log Report Available Notification + Check HTTP Response Status Code Is 204 + +*** Keywords *** +Check resource existence and get CallbackUri + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + Integer response status 200 + Validate Json response body LogmSubscription.schema.json + Set Global Variable ${callbackResp} response body callbackUri + +Check HTTP Response Status Code Is + [Arguments] ${expected_status} + Should Be Equal As Strings ${response['status']} ${expected_status} + Log Status code validated + +Post Log Report Available Notification + log Trying to perform a POST to get notification + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${template} = Get File jsons/LogReportAvailableNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} objectInstanceId=${objectInstanceId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} diff --git a/SOL009/NFVMANOLogManagement-API/environment/variables.txt b/SOL009/NFVMANOLogManagement-API/environment/variables.txt index 82c8646ff..0b09b860f 100644 --- a/SOL009/NFVMANOLogManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOLogManagement-API/environment/variables.txt @@ -63,4 +63,6 @@ ${erroneousSubscriptionId} erroneousSubscriptionId ${newSubscriptionId} newSubsciptionId ${objectInstanceId} 4bd7-94b4-6bbb86-9c79aa -${notification_type} LogReportAvailableNotification \ No newline at end of file +${notification_type} LogReportAvailableNotification + +${callbackResp} 127.0.0.1 \ No newline at end of file diff --git a/SOL009/NFVMANOLogManagement-API/jsons/LogReportAvailableNotification.json b/SOL009/NFVMANOLogManagement-API/jsons/LogReportAvailableNotification.json new file mode 100644 index 000000000..d585acf56 --- /dev/null +++ b/SOL009/NFVMANOLogManagement-API/jsons/LogReportAvailableNotification.json @@ -0,0 +1,12 @@ +{{ + "id": "", + "notificationType": "LogReportAvailableNotification", + "subscriptionId": "{subscriptionId}", + "timeStamp": "", + "objectInstanceId": "{objectInstanceId}", + "_links": {{ + "subscription": "", + "LoggingJob": "", + "logReports": [] + }} +}} \ No newline at end of file -- GitLab From 8664578dc3cf866acced5cef7606fa7c18ab19ac Mon Sep 17 00:00:00 2001 From: zafar Date: Thu, 26 Nov 2020 13:31:13 +0500 Subject: [PATCH 115/116] Minor errors resolved. All tests validated. --- .../NotificationConsumer.robot | 9 +++++---- .../NFVMANOLogManagement-API/NotificationConsumer.robot | 1 + .../NotificationConsumer.robot | 1 + .../environment/variables.txt | 4 +++- .../NotificationConsumer.robot | 1 + 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot b/SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot index 83972fbec..3784c1612 100644 --- a/SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot +++ b/SOL009/NFVMANOFaultManagement-API/NotificationConsumer.robot @@ -4,6 +4,7 @@ Resource environment/variables.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library OperatingSystem Library JSONLibrary +Library String Suite Setup Check resource existence and get CallbackUri *** Test Cases *** @@ -46,7 +47,7 @@ Alarm List Rebuilt Notification *** Keywords *** Check resource existence and get CallbackUri Set Headers {"Accept":"${ACCEPT_JSON}"} - Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} Integer response status 200 @@ -61,7 +62,7 @@ Check HTTP Response Status Code Is Post Alarm Notification log Trying to perform a POST to get notification Set Headers {"Accept":"${ACCEPT_JSON}"} - Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} ${template} = Get File jsons/AlarmNotification.json ${body}= Format String ${template} subscriptionId=${subscriptionId} alarmId=${alarmId} managedObjectId=${managedObjectId} @@ -72,7 +73,7 @@ Post Alarm Notification Post Alarm Cleared Notification log Trying to perform a POST to get notification Set Headers {"Accept":"${ACCEPT_JSON}"} - Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} ${template} = Get File jsons/AlarmClearedNotification.json ${body}= Format String ${template} subscriptionId=${subscriptionId} alarmId=${alarmId} @@ -83,7 +84,7 @@ Post Alarm Cleared Notification Post Alarm List Rebuilt Notification log Trying to perform a POST to get notifications Set Headers {"Accept":"${ACCEPT_JSON}"} - Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} ${template} = Get File jsons/AlarmListRebuiltNotification.json ${body}= Format String ${template} subscriptionId=${subscriptionId} diff --git a/SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot b/SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot index b89a0eee1..f124cf4b9 100644 --- a/SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot +++ b/SOL009/NFVMANOLogManagement-API/NotificationConsumer.robot @@ -4,6 +4,7 @@ Resource environment/variables.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library OperatingSystem Library JSONLibrary +Library String Suite Setup Check resource existence and get CallbackUri *** Test Cases *** diff --git a/SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot b/SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot index 5ae44b57e..9fcc1ca51 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot +++ b/SOL009/NFVMANOPerformanceManagement-API/NotificationConsumer.robot @@ -5,6 +5,7 @@ Resource environment/individualThresholds.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library OperatingSystem Library JSONLibrary +Library String Suite Setup Check resource existence and get CallbackUri diff --git a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt index 0d578a276..877c07bfe 100644 --- a/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt +++ b/SOL009/NFVMANOPerformanceManagement-API/environment/variables.txt @@ -35,4 +35,6 @@ ${subscriptionId} 17563e75-0e14-4bd7-94b4-6bbb869c79aa ${response} -${objectInstanceIds} daca910b0-00d4f1a2b675d-604257e42 \ No newline at end of file +${objectInstanceIds} daca910b0-00d4f1a2b675d-604257e42 + +${callbackResp} 127.0.0.1 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot index f7a1578f7..27fa56033 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationConsumer.robot @@ -4,6 +4,7 @@ Resource environment/variables.txt Library REST ${NFVMANO_SCHEMA}://${NFVMANO_HOST}:${NFVMANO_PORT} ssl_verify=false Library OperatingSystem Library JSONLibrary +Library String Suite Setup Check resource existence and get CallbackUri *** Test Cases *** -- GitLab From 17dbfcb12487b49267ef3494ffc0ceb2106b3572 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 1 Apr 2021 15:54:24 +0200 Subject: [PATCH 116/116] fixes due to rebase --- .../ChangeStateOperationOccurrences.robot | 8 ++--- .../NFVMANOCimKeywords.robot | 16 +++++----- .../PeerEntities.robot | 30 +++++++++---------- indexes/sol_005_index.csv | 2 +- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot index d0b06d71d..a88f6f870 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot @@ -146,7 +146,7 @@ GET Change State Operation Occurrences with Paged Response ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Change State Operation Occurrence + Get Change State Operation Occurrences Check HTTP Response Status Code Is 200 Check HTTP Response Header Contains Link @@ -172,7 +172,7 @@ PUT Change State Operation Occurrences - Method not implemented ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Put request for Change State Operation Occurrence + Send Put request for Change State Operation Occurrences Check HTTP Response Status Code Is 405 PATCH Change State Operation Occurrences - Method not implemented @@ -184,7 +184,7 @@ PATCH Change State Operation Occurrences - Method not implemented ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Patch request for Change State Operation Occurrence + Send Patch request for Change State Operation Occurrences Check HTTP Response Status Code Is 405 DELETE Change State Operation Occurrences - Method not implemented @@ -196,5 +196,5 @@ DELETE Change State Operation Occurrences - Method not implemented ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Delete request for Change State Operation Occurrence + Send Delete request for Change State Operation Occurrences Check HTTP Response Status Code Is 405 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 57e609f64..0689396c5 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -242,7 +242,7 @@ Send DELETE request for Change State Operation Occurrences ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Post request for Individual Change State Operation Occurance +Send Post request for Individual Change State Operation Occurrence Log Trying to perform a POST (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -250,7 +250,7 @@ Send Post request for Individual Change State Operation Occurance ${output}= Output response Set Suite Variable ${response} ${output} -Get Individual Change State OpOcc +Get Individual Change State Operation Occurrence Log Query to GET information about individual change state operation occurrences. Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -259,7 +259,7 @@ Get Individual Change State OpOcc ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Put request for Individual Change State Operation Occurance +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":"${AUTHORIZATION}"} @@ -267,7 +267,7 @@ Send Put request for Individual Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Patch request for Individual Change State Operation Occurance +Send Patch request for Individual Change State Operation Occurrence log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -275,7 +275,7 @@ Send Patch request for Individual Change State Operation Occurance ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Delete request for Individual Change State Operation Occurance +Send Delete request for Individual Change State Operation Occurrence log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -816,7 +816,7 @@ Check HTTP Response Header Contains Location ${loc}= Get Value From Json ${response['headers']} $..Location Should Not Be Empty ${loc} -GET Peer Entity with malformed authorization token +GET Peer Entities with malformed authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -826,7 +826,7 @@ GET Peer Entity with malformed authorization token ${output}= Output response Set Suite Variable ${response} ${output} -GET Peer Entity without authorization token +GET Peer Entities without authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries omitting token Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -835,7 +835,7 @@ GET Peer Entity without authorization token ${output}= Output response Set Suite Variable ${response} ${output} -GET Peer Entity with expired or revoked authorization token +GET Peer Entities with expired or revoked authorization token Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication Log The GET method queries using invalid token Set Headers {"Accept": "${ACCEPT_JSON}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index 55ce8d910..e2c01b989 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -32,7 +32,7 @@ GET Peer Entities ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity + Get Peer Entities Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -45,7 +45,7 @@ GET Peer Entities - invalid attribute-based filter ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity with invalid filter + Get Peer Entities with invalid filter Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -58,7 +58,7 @@ GET Peer Entities - invalid attribute selector ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity with invalid selector + Get Peer Entities with invalid selector Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -71,7 +71,7 @@ GET Peer Entities - Bad Request Response too Big ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity + Get Peer Entities Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails @@ -84,7 +84,7 @@ GET Peer Entities with attribute-based filter ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity with filter + Get Peer Entities with filter Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -97,7 +97,7 @@ GET Peer Entities with "all_fields" attribute selector ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity with all_fields attribute selector + Get Peer Entities with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -110,7 +110,7 @@ GET Peer Entities with "exclude_default" attribute selector ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity with all_fields attribute selector + Get Peer Entities with all_fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -123,7 +123,7 @@ GET Peer Entities with "fields" attribute selector ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity with fields attribute selector + Get Peer Entities with fields attribute selector Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is PeerEntities @@ -162,7 +162,7 @@ GET Peer Entity with Paged Response ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Get Peer Entity + Get Peer Entities Check HTTP Response Status Code Is 200 Check HTTP Response Header Contains Link @@ -175,7 +175,7 @@ Get Peer Entity with malformed authorization token ... Config ID: Config_prod_NFV-MANO ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none - GET Peer Entity with malformed authorization token + GET Peer Entities with malformed authorization token Check HTTP Response Status Code Is 401 Get Peer Entity without authorization token @@ -187,7 +187,7 @@ Get Peer Entity without authorization token ... Config ID: Config_prod_NFV-MANO ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none - GET Peer Entity without authorization token + GET Peer Entities without authorization token Check HTTP Response Status Code Is 401 GET information about multiple alarms with expired or revoked authorization token @@ -199,7 +199,7 @@ GET information about multiple alarms with expired or revoked authorization toke ... Config ID: Config_prod_NFV-MANO ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none - GET Peer Entity with expired or revoked authorization token + GET Peer Entities with expired or revoked authorization token Check HTTP Response Status Code Is 401 PUT Peer Entities - Method not implemented @@ -211,7 +211,7 @@ PUT Peer Entities - Method not implemented ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Put request for Peer Entity + Send Put request for Peer Entities Check HTTP Response Status Code Is 405 PATCH Peer Entities - Method not implemented @@ -223,7 +223,7 @@ PATCH Peer Entities - Method not implemented ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Patch request for Peer Entity + Send Patch request for Peer Entities Check HTTP Response Status Code Is 405 DELETE Peer Entities - Method not implemented @@ -235,5 +235,5 @@ DELETE Peer Entities - Method not implemented ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none - Send Delete request for Peer Entity + Send Delete request for Peer Entities Check HTTP Response Status Code Is 405 diff --git a/indexes/sol_005_index.csv b/indexes/sol_005_index.csv index 31fcb08ef..02b0ff9bf 100644 --- a/indexes/sol_005_index.csv +++ b/indexes/sol_005_index.csv @@ -36,7 +36,7 @@ 5.3.2.18,NS Instance Creation Workflow, CreateNSInstanceWorkflow.robot 5.3.2.19, NS Instance Deletion, DeleteNSInstanceWorkflow.robot 5.3.2.20, Heal Flow of NS lifecycle management operations, HealNSTaskWorkflow.robot -5.3.2.21, Instantiate Flow of NS lifecycle management operations, InstanciateNSTaskWorkflow.robot +5.3.2.21, Instantiate Flow of NS lifecycle management operations, InstantiateNSTaskWorkflow.robot 5.3.2.22, Scale Flow of NS lifecycle management operations, ScaleNSTaskWorkflow.robot 5.3.2.23, Terminate Flow of NS lifecycle management operations, TerminateNSTaskWorkflow.robot 5.3.2.24, Update Flow of NS lifecycle management operations, UpdateNSTaskWorkflow.robot -- GitLab