From 8081c1c9d07268c64b2ca8593b31cbca49d9ac83 Mon Sep 17 00:00:00 2001 From: Gabriele Scivoletto <g.scivoletto@nextworks.it> Date: Wed, 3 Jan 2024 18:08:11 +0100 Subject: [PATCH] MEC028 v2.3.1 completed --- MEC028/WAI/EXT_SUB/ExistingSubscription.robot | 3 +- .../jsons/CreateAssocStaSubscription.json | 2 +- MEC028/WAI/MEAS/WaiMeasurement.robot | 154 +- MEC028/WAI/MEAS/environment/variables.txt | 6 +- MEC028/WAI/MEAS/jsons/MeasurementConfig.json | 3 + .../MEAS/jsons/MeasurementConfigError.json | 4 +- .../MEAS/jsons/MeasurementConfigUpdate.json | 3 + MEC028/WAI/STA_INFO/WaiStaInfo.robot | 12 +- MEC028/WAI/STA_INFO/environment/variables.txt | 4 +- .../schemas/ProblemDetails.schema.json | 74 +- .../WAI/STA_INFO/schemas/StaInfo.schema.json | 1540 ++++++++--------- MEC028/WAI/SUB/WaiSubscription.robot | 77 +- MEC028/WAI/SUB/environment/variables.txt | 5 +- .../WAI/SUB/jsons/AssocStaSubscription.json | 18 +- .../SUB/jsons/CreateAssocStaSubscription.json | 23 + 15 files changed, 1027 insertions(+), 901 deletions(-) create mode 100644 MEC028/WAI/SUB/jsons/CreateAssocStaSubscription.json diff --git a/MEC028/WAI/EXT_SUB/ExistingSubscription.robot b/MEC028/WAI/EXT_SUB/ExistingSubscription.robot index 2015b8b..87a5420 100644 --- a/MEC028/WAI/EXT_SUB/ExistingSubscription.robot +++ b/MEC028/WAI/EXT_SUB/ExistingSubscription.robot @@ -90,7 +90,7 @@ TC_MEC_MEC028_SRV_WAI_010_OK TC_MEC_MEC028_SRV_WAI_010_NF [Documentation] ... Check that the IUT responds with an error when an not existing subscription cannot be deleted" - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.6.3.5 + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.6.3.5 [Setup] Remove Subscription Info Using SubId ${NOT_EXISTING_SUB_ID} @@ -146,7 +146,6 @@ Create New Subscription Info ${file}= Catenate SEPARATOR= jsons/ CreateAssocStaSubscription .json ${body}= Get File ${file} ${json_data}= Evaluate json.loads('''${body}''') json - Log Original JSON: ${json_data} ${new_href}= Set Variable ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT}/${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUB_ID} Set To Dictionary ${json_data["_links"]["self"]} href=${new_href} ${modified_json_string}= Evaluate json.dumps(${json_data}) diff --git a/MEC028/WAI/EXT_SUB/jsons/CreateAssocStaSubscription.json b/MEC028/WAI/EXT_SUB/jsons/CreateAssocStaSubscription.json index 3e04ff8..7fed698 100644 --- a/MEC028/WAI/EXT_SUB/jsons/CreateAssocStaSubscription.json +++ b/MEC028/WAI/EXT_SUB/jsons/CreateAssocStaSubscription.json @@ -3,7 +3,7 @@ "callbackReference": "http://meAppClient.example.com/wai/v2/notifications/1", "_links": { "self": { - "href": "http://meAppServer.example.com/wai/v2/subscriptions/sub123" + "href": "/wai/v2/subscriptions/sub123" } }, "expiryDeadline": { diff --git a/MEC028/WAI/MEAS/WaiMeasurement.robot b/MEC028/WAI/MEAS/WaiMeasurement.robot index 0aa1a6d..3fe3b74 100644 --- a/MEC028/WAI/MEAS/WaiMeasurement.robot +++ b/MEC028/WAI/MEAS/WaiMeasurement.robot @@ -5,84 +5,95 @@ Resource environment/variables.txt Resource ../../../pics.txt Resource ../../../GenericKeywords.robot +Library Collections Library String Library OperatingSystem Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false *** Test Cases *** -TP_MEC_MEC028_SRV_WAI_012_OK +TC_MEC_MEC028_SRV_WAI_012_OK [Documentation] ... Check that the IUT responds with a list of measurement ... configurations available from the WLAN Access Information Service - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.7.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.7.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList + [Setup] Create a new measurement configuration ${MEAS_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Retrieve a list of list of measurement configurations Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MeasurementConfigLinkList + + [TearDown] Delete a specified measurement configuration ${MEAS_ID} -TP_MEC_MEC028_SRV_WAI_013_OK +TC_MEC_MEC028_SRV_WAI_013_OK [Documentation] ... Check that the IUT responds with a new measurement configuration - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.7.3.4 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfig + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.7.3.4 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfig Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 - ${path} Catenate SEPARATOR= jsons/ MeasurementConfig.json - ${body} Get File ${path} - ${json_object}= Evaluate json.loads('''${body}''') json - Create a new measurement configuration ${body} - Check HTTP Response Status Code Is 200 + + Create a new measurement configuration ${MEAS_ID} + Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is MeasurementConfigLinkList Should Be Equal As Strings ${response['body']['staIdentity']['staId']} ${STA_ID} - Should Be Equal As Strings ${response['body']['measurementId'] ${MEAS_ID} - Should Be Equal As Strings ${json_object['measurementInfo']} ${response['body']['measurementInfo']} + Should Be Equal As Strings ${response['body']['measurementId']} ${MEAS_ID} + Should Be Equal As Strings ${response['body']['measurementInfo']} ${response['body']['measurementInfo']} -TP_MEC_MEC028_SRV_WAI_013_BR +TC_MEC_MEC028_SRV_WAI_013_BR [Documentation] ... Check that the IUT responds with an error when an invalid request is sent - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.7.3.4 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfig + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.7.3.4 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfig Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 - ${path} Catenate SEPARATOR= jsons/ MeasurementConfigError.json - ${body} Get File ${path} - ${json_object}= Evaluate json.loads('''${body}''') json - Create a new measurement configuration ${body} + + Create a new measurement configuration from file MeasurementConfigError Check HTTP Response Status Code Is 400 -TP_MEC_MEC028_SRV_WAI_014_OK +TC_MEC_MEC028_SRV_WAI_014_OK [Documentation] ... Check that the IUT responds with the specified measurement configuration - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.8.3.1 - ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.8.3.1 + ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + + [Setup] Create a new measurement configuration ${MEAS_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 - Check HTTP Response Body Json Schema Is MeasurementConfig + Retrieve a specified measurement configuration ${MEAS_ID} + Check HTTP Response Body Json Schema Is MeasurementConfig Check HTTP Response Status Code Is 200 - Should Be Equal As Strings ${response['body']['measurementId'] ${MEAS_ID} - - + Should Be Equal As Strings ${response['body']['measurementId']} ${MEAS_ID} -TP_MEC_MEC028_SRV_WAI_014_NF + [TearDown] Delete a specified measurement configuration ${MEAS_ID} + +TC_MEC_MEC028_SRV_WAI_014_NF [Documentation] ... Check that the IUT responds with an error when an invalid request is sent - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.8.3.1 - ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.8.3.1 + ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + + [Setup] Delete a specified measurement configuration ${INVALID_MEASUREMENT_CONFIG_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Retrieve a specified measurement configuration ${INVALID_MEASUREMENT_CONFIG_ID} Check HTTP Response Status Code Is 404 - + -TP_MEC_MEC028_SRV_WAI_015_OK +TC_MEC_MEC028_SRV_WAI_015_OK [Documentation] ... Check that the IUT responds with the modified measurement configuration - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.8.3.2 - ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.8.3.2 + ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + + [Setup] Create a new measurement configuration ${MEAS_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 ${path} Catenate SEPARATOR= jsons/ MeasurementConfigUpdate.json @@ -91,42 +102,55 @@ TP_MEC_MEC028_SRV_WAI_015_OK Update a specified measurement configuration ${MEAS_ID} ${body} Check HTTP Response Status Code Is 200 Should Be Equal As Strings ${response['body']['staIdentity']['staId']} ${json_object['staIdentity']['staId']} - Should Be Equal As Strings ${response['body']['measurementId'] ${MEAS_ID} + Should Be Equal As Strings ${response['body']['measurementId']} ${MEAS_ID} Should Be Equal As Strings ${response['body']['measurementInfo']} ${json_object['measurementInfo']} + [TearDown] Delete a specified measurement configuration ${MEAS_ID} + -TP_MEC_MEC028_SRV_WAI_015_NF +TC_MEC_MEC028_SRV_WAI_015_NF [Documentation] ... Check that the IUT responds with an error when an invalid request is sent - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.8.3.2 - ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.8.3.2 + ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + + [Setup] Create a new measurement configuration ${MEAS_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Update a specified measurement configuration ${INVALID_MEASUREMENT_CONFIG_ID} MeasurementConfigUpdate.json Check HTTP Response Status Code Is 404 + + [TearDown] Delete a specified measurement configuration ${MEAS_ID} -TP_MEC_MEC028_SRV_WAI_016_OK +TC_MEC_MEC028_SRV_WAI_016_OK [Documentation] ... Check that the IUT responds with with 204 when requested to delete the specified measurement configuration - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.8.3.5 - ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.8.3.5 + ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + + [Setup] Create a new measurement configuration ${MEAS_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Delete a specified measurement configuration ${MEAS_ID} Check HTTP Response Status Code Is 204 -TP_MEC_MEC028_SRV_WAI_016_NF +TC_MEC_MEC028_SRV_WAI_016_NF [Documentation] ... Check that the IUT responds with an error when an invalid request is sent - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.8.3.5 - ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.2.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.8.3.5 + ... "https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/MeasurementConfigLinkList" + + [Setup] Delete a specified measurement configuration ${INVALID_MEASUREMENT_CONFIG_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Delete a specified measurement configuration ${INVALID_MEASUREMENT_CONFIG_ID} - Check HTTP Response Status Code Is 204 + Check HTTP Response Status Code Is 404 *** Keywords *** @@ -136,18 +160,39 @@ Retrieve a list of list of measurement configurations Set Headers {"Accept":"application/json"} Set Headers {"Content-Type":"*/*"} Set Headers {"Authorization":"${TOKEN}"} - GET ${apiRoot}/${apiName}/${apiVersion}/queries/measurement + GET ${apiRoot}/${apiName}/${apiVersion}/measurements ${output}= Output response Set Suite Variable ${response} ${output} Create a new measurement configuration - [Arguments] ${body} + [Arguments] ${measurementId} + Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Set Headers {"Accept":"application/json"} - Set Headers {"Content-Type":"*/*"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${path} Catenate SEPARATOR= jsons/ MeasurementConfig.json + ${body} Get File ${path} + ${json_data}= Evaluate json.loads('''${body}''') json + Set To Dictionary ${json_data} measurementId=${measurementId} + ${modified_json_string}= Evaluate json.dumps(${json_data}) + POST ${apiRoot}/${apiName}/${apiVersion}/measurements ${modified_json_string} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Create a new measurement configuration from file + [Arguments] ${filename} + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} - POST ${apiRoot}/${apiName}/${apiVersion}/queries/measurements ${body} + ${path} Catenate SEPARATOR= jsons/ ${filename} .json + ${body} Get File ${path} + ${json_data}= Evaluate json.loads('''${body}''') json + POST ${apiRoot}/${apiName}/${apiVersion}/measurements ${json_data} ${output}= Output response Set Suite Variable ${response} ${output} @@ -157,9 +202,9 @@ Retrieve a specified measurement configuration Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Set Headers {"Accept":"application/json"} - Set Headers {"Content-Type":"*/*"} + Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} - GET ${apiRoot}/${apiName}/${apiVersion}/queries/measurement/${MEAS_CONF_ID} + GET ${apiRoot}/${apiName}/${apiVersion}/measurements/${MEAS_CONF_ID} ${output}= Output response Set Suite Variable ${response} ${output} @@ -168,14 +213,13 @@ Update a specified measurement configuration Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Set Headers {"Accept":"application/json"} - Set Headers {"Content-Type":"*/*"} + Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} - GET ${apiRoot}/${apiName}/${apiVersion}/queries/measurement/${MEAS_CONF_ID} ${body} + PUT ${apiRoot}/${apiName}/${apiVersion}/measurements/${MEAS_CONF_ID} ${content} ${output}= Output response Set Suite Variable ${response} ${output} - Delete a specified measurement configuration [Arguments] ${MEAS_CONF_ID} Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -183,7 +227,7 @@ Delete a specified measurement configuration Set Headers {"Accept":"application/json"} Set Headers {"Content-Type":"*/*"} Set Headers {"Authorization":"${TOKEN}"} - GET ${apiRoot}/${apiName}/${apiVersion}/queries/measurement/${MEAS_CONF_ID} + DELETE ${apiRoot}/${apiName}/${apiVersion}/measurements/${MEAS_CONF_ID} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/MEC028/WAI/MEAS/environment/variables.txt b/MEC028/WAI/MEAS/environment/variables.txt index bb9bd9d..becba21 100644 --- a/MEC028/WAI/MEAS/environment/variables.txt +++ b/MEC028/WAI/MEAS/environment/variables.txt @@ -4,11 +4,11 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} 127.0.0.1 -${MEC-APP_PORT} 8082 +${MEC-APP_HOST} mockoon +${MEC-APP_PORT} 3001 ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${STA_ID} 123 -${MEAS_ID} 456 +${MEAS_ID} 123 ${INVALID_MEASUREMENT_CONFIG_ID} 999 \ No newline at end of file diff --git a/MEC028/WAI/MEAS/jsons/MeasurementConfig.json b/MEC028/WAI/MEAS/jsons/MeasurementConfig.json index deb6857..97d78c9 100644 --- a/MEC028/WAI/MEAS/jsons/MeasurementConfig.json +++ b/MEC028/WAI/MEAS/jsons/MeasurementConfig.json @@ -4,6 +4,9 @@ "macId": "123" } ], + "staIdentity": { + "staId": "123" + }, "measurementId": "123", "measurementInfo": { "measurementDuration": 10 diff --git a/MEC028/WAI/MEAS/jsons/MeasurementConfigError.json b/MEC028/WAI/MEAS/jsons/MeasurementConfigError.json index a2e38f2..b1cc702 100644 --- a/MEC028/WAI/MEAS/jsons/MeasurementConfigError.json +++ b/MEC028/WAI/MEAS/jsons/MeasurementConfigError.json @@ -1,10 +1,10 @@ { - "StaIdentities": [ + "statId": [ { "macId": "123" } ], - "measurementId": "123", + "measurementId": "321", "measurementInfo": { "measurementDuration": 10 }, diff --git a/MEC028/WAI/MEAS/jsons/MeasurementConfigUpdate.json b/MEC028/WAI/MEAS/jsons/MeasurementConfigUpdate.json index b758cf4..1764041 100644 --- a/MEC028/WAI/MEAS/jsons/MeasurementConfigUpdate.json +++ b/MEC028/WAI/MEAS/jsons/MeasurementConfigUpdate.json @@ -4,6 +4,9 @@ "macId": "123" } ], + "staIdentity": { + "staId": "123" + }, "measurementId": "123", "measurementInfo": { "measurementDuration": 50 diff --git a/MEC028/WAI/STA_INFO/WaiStaInfo.robot b/MEC028/WAI/STA_INFO/WaiStaInfo.robot index 7cc7b4e..9fa2c31 100644 --- a/MEC028/WAI/STA_INFO/WaiStaInfo.robot +++ b/MEC028/WAI/STA_INFO/WaiStaInfo.robot @@ -14,8 +14,8 @@ Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_v TP_MEC_MEC028_SRV_WAI_003_OK [Documentation] ... Check that the IUT responds with the list of Station Point - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.4.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schema/StaInfo #Outdated + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.4.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schema/StaInfo Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Retrieve the station information @@ -31,8 +31,8 @@ TP_MEC_MEC028_SRV_WAI_003_OK TP_MEC_MEC028_SRV_WAI_004_OK [Documentation] ... Check that the IUT responds with the list of Station Point filtered by the macId provided as query parameter - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.4.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schema/StaInfo #Outdated + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.4.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schema/StaInfo Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Retrieve the station information using filters ${filter} @@ -49,8 +49,8 @@ TP_MEC_MEC028_SRV_WAI_004_OK TP_MEC_MEC028_SRV_WAI_004_BR [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 028 2.2.1, clause 7.4.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schema/StaInfo #Outdated + ... ETSI GS MEC 028 2.3.1, clause 7.4.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schema/StaInfo Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Retrieve the station information using filters ${bad_filter} diff --git a/MEC028/WAI/STA_INFO/environment/variables.txt b/MEC028/WAI/STA_INFO/environment/variables.txt index 79e2b50..042ce8f 100644 --- a/MEC028/WAI/STA_INFO/environment/variables.txt +++ b/MEC028/WAI/STA_INFO/environment/variables.txt @@ -4,8 +4,8 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} 127.0.0.1 -${MEC-APP_PORT} 8082 +${MEC-APP_HOST} mockoon +${MEC-APP_PORT} 3001 ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/MEC028/WAI/STA_INFO/schemas/ProblemDetails.schema.json b/MEC028/WAI/STA_INFO/schemas/ProblemDetails.schema.json index e14c086..5581cbf 100644 --- a/MEC028/WAI/STA_INFO/schemas/ProblemDetails.schema.json +++ b/MEC028/WAI/STA_INFO/schemas/ProblemDetails.schema.json @@ -1,38 +1,38 @@ -{ - "properties": { - "detail": { - "description": "A human-readable explanation specific to this occurrence of the problem", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "String" + { + "properties": { + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "URI" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "title": { + "description": "A short, human-readable summary of the problem type", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "type": { + "description": "A URI reference according to IETF RFC 3986 that identifies the problem type", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "URI" + } }, - "instance": { - "description": "A URI reference that identifies the specific occurrence of the problem", - "format": "uri", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "URI" - }, - "status": { - "description": "The HTTP status code for this occurrence of the problem", - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "title": { - "description": "A short, human-readable summary of the problem type", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "String" - }, - "type": { - "description": "A URI reference according to IETF RFC 3986 that identifies the problem type", - "format": "uri", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "URI" - } - }, - "type": "object" -} \ No newline at end of file + "type": "object" + } \ No newline at end of file diff --git a/MEC028/WAI/STA_INFO/schemas/StaInfo.schema.json b/MEC028/WAI/STA_INFO/schemas/StaInfo.schema.json index cc1136c..52449df 100644 --- a/MEC028/WAI/STA_INFO/schemas/StaInfo.schema.json +++ b/MEC028/WAI/STA_INFO/schemas/StaInfo.schema.json @@ -1,789 +1,789 @@ { -"items":{ - "properties": { - "apAssociated": { - "properties": { - "assocId": { - "description": "Unique number which identifies a particular association between the station and Access Point.", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "string" - }, - "ipAddress": { - "description": "IPv4 or IPv6 address allocated for the Access Point.", - "items": { - "type": "string" + "items": { + "properties": { + "apAssociated": { + "properties": { + "assocId": { + "description": "Unique number which identifies a particular association between the station and Access Point.", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "string" }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "string" - }, - "macId": { - "description": "Unique identifier assigned to the Access Point (as network interface controller) for communications at the data link layer of a network segment.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "string" - }, - "ssid": { - "description": "Service Set Identifier to identify logical networks.", - "items": { - "type": "string" + "ipAddress": { + "description": "IPv4 or IPv6 address allocated for the Access Point.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "string" }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "String" - } - }, - "required": [ - "macId" - ], - "type": "object", - "x-etsi-ref": "6.5.12" - }, - "beaconReport": { - "properties": { - "bssId": { - "description": "The BSSID field indicates the BSSID of the BSS(s) for which a beacon report has been received.", - "items": { - "type": "string" + "macId": { + "description": "Unique identifier assigned to the Access Point (as network interface controller) for communications at the data link layer of a network segment.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "string" }, - "minItems": 1, - "type": "array", - "x-etsi-mec-cardinality": "1..N", - "x-etsi-mec-origin-type": "String" - }, - "channelId": { - "description": "Channel number where the beacon was received.", - "type": "integer", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "Integer" - }, - "measurementId": { - "description": "Measurement ID of the Measurement configuration applied to this Beacon Report.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" + "ssid": { + "description": "Service Set Identifier to identify logical networks.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "String" + } }, - "reportingCondition": { - "description": "As in table T9-89 of IEEE 802.11-2012 [8].", - "type": "integer", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "Integer" - }, - "ssId": { - "description": "(Optional) The SSID subelement indicates the ESS(s) or IBSS(s) for which a beacon report is received.", - "items": { - "type": "string" + "required": [ + "macId" + ], + "type": "object", + "x-etsi-ref": "6.5.12" + }, + "beaconReport": { + "properties": { + "bssId": { + "description": "The BSSID field indicates the BSSID of the BSS(s) for which a beacon report has been received.", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "String" }, - "minItems": 1, - "type": "array", - "x-etsi-mec-cardinality": "1..N", - "x-etsi-mec-origin-type": "String" - }, - "staId": { - "properties": { - "aid": { - "description": "Number which identifies a particular association between a station and an Access Point ", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "String" - }, - "ipAddress": { - "description": "IPv4 or IPv6 address allocated for the station.", - "items": { - "type": "string" - }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "String" - }, - "macId": { - "description": "Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" - }, - "ssid": { - "description": "Service Set Identifier to identify logical networks.", - "items": { - "type": "string" - }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "String" - } + "channelId": { + "description": "Channel number where the beacon was received.", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Integer" }, - "required": [ - "macId" - ], - "type": "object", - "x-etsi-ref": "6.5.11" - } - }, - "required": [ - "staId", - "measurementId", - "channelId", - "bssId", - "ssId", - "reportingCondition" - ], - "type": "object", - "x-etsi-ref": "6.5.27" - }, - "channel": { - "description": "Channel currently used by the station.", - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "rssi": { - "properties": { - "rssi": { - "description": "The Received Signal Strength Indicator from a station", - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "Uint8" - } - }, - "required": [ - "rssi" - ], - "type": "object", - "x-etsi-ref": "6.5.21" - }, - "staDataRate": { - "properties": { - "staId": { - "properties": { - "aid": { - "description": "Number which identifies a particular association between a station and an Access Point ", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "String" - }, - "ipAddress": { - "description": "IPv4 or IPv6 address allocated for the station.", - "items": { - "type": "string" - }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "String" - }, - "macId": { - "description": "Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" - }, - "ssid": { - "description": "Service Set Identifier to identify logical networks.", - "items": { - "type": "string" - }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "String" - } + "measurementId": { + "description": "Measurement ID of the Measurement configuration applied to this Beacon Report.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" }, - "required": [ - "macId" - ], - "type": "object", - "x-etsi-ref": "6.5.11" - }, - "staLastDataDownlinkRate": { - "description": "The data transmit rate in kbps that was most recently used for transmission of data PPDUs from the access point to the station.", - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" + "reportingCondition": { + "description": "As in table T9-89 of IEEE 802.11-2012 [8].", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Integer" + }, + "ssId": { + "description": "(Optional) The SSID subelement indicates the ESS(s) or IBSS(s) for which a beacon report is received.", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "String" + }, + "staId": { + "properties": { + "aid": { + "description": "Number which identifies a particular association between a station and an Access Point ", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "ipAddress": { + "description": "IPv4 or IPv6 address allocated for the station.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "String" + }, + "macId": { + "description": "Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "ssid": { + "description": "Service Set Identifier to identify logical networks.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "macId" + ], + "type": "object", + "x-etsi-ref": "6.5.11" + } }, - "staLastDataUplinkRate": { - "description": "The data transmit rate in Kbps that was most recently used for transmission of data PPDUs from the associated station to the access point.", - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - } + "required": [ + "staId", + "measurementId", + "channelId", + "bssId", + "ssId", + "reportingCondition" + ], + "type": "object", + "x-etsi-ref": "6.5.27" }, - "type": "object", - "x-etsi-ref": "6.5.22" - }, - "staId": { - "properties": { - "aid": { - "description": "Number which identifies a particular association between a station and an Access Point ", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "String" + "channel": { + "description": "Channel currently used by the station.", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "rssi": { + "properties": { + "rssi": { + "description": "The Received Signal Strength Indicator from a station", + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uint8" + } }, - "ipAddress": { - "description": "IPv4 or IPv6 address allocated for the station.", - "items": { - "type": "string" + "required": [ + "rssi" + ], + "type": "object", + "x-etsi-ref": "6.5.21" + }, + "staDataRate": { + "properties": { + "staId": { + "properties": { + "aid": { + "description": "Number which identifies a particular association between a station and an Access Point ", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "ipAddress": { + "description": "IPv4 or IPv6 address allocated for the station.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "String" + }, + "macId": { + "description": "Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "ssid": { + "description": "Service Set Identifier to identify logical networks.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "macId" + ], + "type": "object", + "x-etsi-ref": "6.5.11" }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "String" - }, - "macId": { - "description": "Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" - }, - "ssid": { - "description": "Service Set Identifier to identify logical networks.", - "items": { - "type": "string" + "staLastDataDownlinkRate": { + "description": "The data transmit rate in kbps that was most recently used for transmission of data PPDUs from the access point to the station.", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N", - "x-etsi-mec-origin-type": "String" - } - }, - "required": [ - "macId" - ], - "type": "object", - "x-etsi-ref": "6.5.11" - }, - "staStatistics": { - "properties": { - "groupIdentity": { - "description": "Indicates the requested statistics group describing the Statistics Group Data according to table 9-114 of IEEE 802.11-2016 [8].", - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "UInt8" - }, - "md": { - "description": "Measurement Duration.", - "format": "uint16", - "type": "integer", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "UInt16" + "staLastDataUplinkRate": { + "description": "The data transmit rate in Kbps that was most recently used for transmission of data PPDUs from the associated station to the access point.", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + } }, - "statisticsGroupData": { - "description": "Statistics Group Data as defined in Annex C of IEEE 802.112016 [8].", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "not specified", - "properties": { - "dot11AMPDUDelimiterCRCErrorCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11AMPDUReceivedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11AMSDUAckFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11AckFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11BeamformingFrameCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11ChannelWidthSwitchCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11DualCTSFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11DualCTSSuccessCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11ExplicitBARFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11FCSErrorCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11FailedAMSDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11FailedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11FortyMHzFrameReceivedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11FortyMHzFrameTransmittedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11FrameDuplicateCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11GrantedRDGUnusedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11GrantedRDGUsedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11GroupReceivedFrameCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11GroupTransmittedFrameCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11ImplicitBARFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11MPDUInReceivedAMPDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11MultipleRetryAMSDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11MultipleRetryCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11PSMPUTTGrantDuration": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11PSMPUTTUsedDuration": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosAckFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosDiscardedFrameCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosFailedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosFrameDuplicateCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosMPDUsReceivedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosMultipleRetryCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosRTSFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosRTSSuccessCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosReceivedFragmentCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosRetriesReceivedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosRetryCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosTransmittedFragmentCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11QosTransmittedFrameCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RSNAStatsBIPMICErrors": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RSNAStatsCCMPDecryptErrors": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RSNAStatsCCMPReplays": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RSNAStatsCMACReplays": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RSNAStatsRobustMgmtCCMPReplays": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RSNAStatsTKIPICVErrors": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RSNAStatsTKIPReplays": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RTSFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RTSLSIGFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RTSLSIGSuccessCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RTSSuccessCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11ReceivedAMSDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11ReceivedFragmentCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11ReceivedOctetsInAMPDUCount": { - "format": "int64", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint64" - }, - "dot11ReceivedOctetsInAMSDUCount": { - "format": "int64", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint64" - }, - "dot11RetryAMSDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11RetryCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11STAStatisticsAPAverageAccessDelay": { - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint8" - }, - "dot11STAStatisticsAverageAccessDelayBackGround": { - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint8" - }, - "dot11STAStatisticsAverageAccessDelayBestEffort": { - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint8" - }, - "dot11STAStatisticsAverageAccessDelayVideo": { - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint8" - }, - "dot11STAStatisticsAverageAccessDelayVoice": { - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint8" - }, - "dot11STAStatisticsChannelUtilization": { - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint8" - }, - "dot11STAStatisticsStationCount": { - "format": "uint8", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint8" - }, - "dot11STBCCTSFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11STBCCTSSuccessCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedAMPDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedAMSDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedFragmentCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedFrameCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedFramesInGrantedRDGCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedMPDUsInAMPDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedOctetsInAMPDUCount": { - "format": "int64", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint64" - }, - "dot11TransmittedOctetsInAMSDUCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TransmittedOctetsInGrantedRDGCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TwentyMHzFrameReceivedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11TwentyMHzFrameTransmittedCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11nonSTBCCTSFailureCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - }, - "dot11nonSTBCCTSSuccessCount": { - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Uint32" - } + "type": "object", + "x-etsi-ref": "6.5.22" + }, + "staId": { + "properties": { + "aid": { + "description": "Number which identifies a particular association between a station and an Access Point ", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "ipAddress": { + "description": "IPv4 or IPv6 address allocated for the station.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "String" }, - "type": "object" - } + "macId": { + "description": "Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "ssid": { + "description": "Service Set Identifier to identify logical networks.", + "items": { + "type": "string" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "macId" + ], + "type": "object", + "x-etsi-ref": "6.5.11" }, - "required": [ - "md", - "groupIdentity", - "statisticsGroupData" - ], - "type": "object", - "x-etsi-ref": "6.5.13" - }, - "timeStamp": { - "properties": { - "nanoSeconds": { - "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "Uint32" + "staStatistics": { + "properties": { + "groupIdentity": { + "description": "Indicates the requested statistics group describing the Statistics Group Data according to table 9-114 of IEEE 802.11-2016 [8].", + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "UInt8" + }, + "md": { + "description": "Measurement Duration.", + "format": "uint16", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "UInt16" + }, + "statisticsGroupData": { + "description": "Statistics Group Data as defined in Annex C of IEEE 802.112016�[8].", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "not specified", + "properties": { + "dot11AMPDUDelimiterCRCErrorCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11AMPDUReceivedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11AMSDUAckFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11AckFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11BeamformingFrameCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11ChannelWidthSwitchCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11DualCTSFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11DualCTSSuccessCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11ExplicitBARFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11FCSErrorCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11FailedAMSDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11FailedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11FortyMHzFrameReceivedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11FortyMHzFrameTransmittedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11FrameDuplicateCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11GrantedRDGUnusedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11GrantedRDGUsedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11GroupReceivedFrameCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11GroupTransmittedFrameCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11ImplicitBARFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11MPDUInReceivedAMPDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11MultipleRetryAMSDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11MultipleRetryCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11PSMPUTTGrantDuration": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11PSMPUTTUsedDuration": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosAckFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosDiscardedFrameCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosFailedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosFrameDuplicateCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosMPDUsReceivedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosMultipleRetryCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosRTSFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosRTSSuccessCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosReceivedFragmentCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosRetriesReceivedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosRetryCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosTransmittedFragmentCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11QosTransmittedFrameCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RSNAStatsBIPMICErrors": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RSNAStatsCCMPDecryptErrors": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RSNAStatsCCMPReplays": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RSNAStatsCMACReplays": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RSNAStatsRobustMgmtCCMPReplays": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RSNAStatsTKIPICVErrors": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RSNAStatsTKIPReplays": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RTSFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RTSLSIGFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RTSLSIGSuccessCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RTSSuccessCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11ReceivedAMSDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11ReceivedFragmentCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11ReceivedOctetsInAMPDUCount": { + "format": "int64", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint64" + }, + "dot11ReceivedOctetsInAMSDUCount": { + "format": "int64", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint64" + }, + "dot11RetryAMSDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11RetryCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11STAStatisticsAPAverageAccessDelay": { + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint8" + }, + "dot11STAStatisticsAverageAccessDelayBackGround": { + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint8" + }, + "dot11STAStatisticsAverageAccessDelayBestEffort": { + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint8" + }, + "dot11STAStatisticsAverageAccessDelayVideo": { + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint8" + }, + "dot11STAStatisticsAverageAccessDelayVoice": { + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint8" + }, + "dot11STAStatisticsChannelUtilization": { + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint8" + }, + "dot11STAStatisticsStationCount": { + "format": "uint8", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint8" + }, + "dot11STBCCTSFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11STBCCTSSuccessCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedAMPDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedAMSDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedFragmentCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedFrameCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedFramesInGrantedRDGCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedMPDUsInAMPDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedOctetsInAMPDUCount": { + "format": "int64", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint64" + }, + "dot11TransmittedOctetsInAMSDUCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TransmittedOctetsInGrantedRDGCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TwentyMHzFrameReceivedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11TwentyMHzFrameTransmittedCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11nonSTBCCTSFailureCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "dot11nonSTBCCTSSuccessCount": { + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + } + }, + "type": "object" + } }, - "seconds": { - "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", - "format": "uint32", - "type": "integer", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "Uint32" - } + "required": [ + "md", + "groupIdentity", + "statisticsGroupData" + ], + "type": "object", + "x-etsi-ref": "6.5.13" }, - "required": [ - "seconds", - "nanoSeconds" - ], - "type": "object", - "x-etsi-ref": "6.5.2" - } - }, - "required": [ - "staId" - ], - "type": "object", - "x-etsi-ref": "6.2.3" - } + "timeStamp": { + "properties": { + "nanoSeconds": { + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uint32" + }, + "seconds": { + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uint32" + } + }, + "required": [ + "seconds", + "nanoSeconds" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + } + }, + "required": [ + "staId" + ], + "type": "object", + "x-etsi-ref": "6.2.3" + } } \ No newline at end of file diff --git a/MEC028/WAI/SUB/WaiSubscription.robot b/MEC028/WAI/SUB/WaiSubscription.robot index 1db1a1d..294d297 100644 --- a/MEC028/WAI/SUB/WaiSubscription.robot +++ b/MEC028/WAI/SUB/WaiSubscription.robot @@ -5,6 +5,7 @@ Resource environment/variables.txt Resource ../../../pics.txt Resource ../../../GenericKeywords.robot +Library Collections Library String Library OperatingSystem Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false @@ -13,24 +14,32 @@ Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_v TP_MEC_MEC028_SRV_WAI_005_OK [Documentation] ... Check that the IUT responds with the requested list of subscription - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.5.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription #Outdated + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.5.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription + + [Setup] Create New Subscription Info ${SUB_ID} + Set Suite Variable ${Location} ${response['headers']['Location']} Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Retrieve the subscription information ${SUB_FILTER} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SubscriptionLinkList - FOR ${assocStaSub} IN @{response['body']['assocStaSubscription']} + FOR ${assocStaSub} IN @{response['body']} ${passed} Run Keyword And Return Status Should Be Equal As Strings ${assocStaSub['_links']['self']['href']} ${HREF} Exit For Loop If ${passed} END + [TearDown] Remove Subscription Info ${Location} + TP_MEC_MEC028_SRV_WAI_006_OK [Documentation] ... Check that the IUT responds with the requested list of subscription - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.5.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription #Outdated + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.5.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription + + [Setup] Create New Subscription Info ${SUB_ID} + Set Suite Variable ${Location} ${response['headers']['Location']} Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -38,31 +47,38 @@ TP_MEC_MEC028_SRV_WAI_006_OK Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SubscriptionLinkList Should Be Equal As Strings ${response['body']['_links']['self']['href']} ${HREF} + + [TearDown] Remove Subscription Info ${Location} TP_MEC_MEC028_SRV_WAI_006_BR [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.5.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription #Outdated + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.5.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription + + [Setup] Create New Subscription Info ${SUB_ID} + Set Suite Variable ${Location} ${response['headers']['Location']} Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Retrieve the subscription information ${INVALID_SUB_FILTER} Check HTTP Response Status Code Is 400 + + [TearDown] Remove Subscription Info ${Location} TP_MEC_MEC028_SRV_WAI_006_NF [Documentation] ... Check that the IUT responds with an error when a request with not existing parameters is sent - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.5.3.1 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription #Outdated + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.5.3.1 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription Retrieve the subscription information using wrong endpoint Check HTTP Response Status Code Is 404 TP_MEC_MEC028_SRV_WAI_007_OK [Documentation] ... Check that the IUT responds with a Notification Subscription - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.5.3.4 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription #Outdated + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.5.3.4 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Send a request for creating a subscription AssocStaSubscription.json @@ -75,8 +91,8 @@ TP_MEC_MEC028_SRV_WAI_007_OK TP_MEC_MEC028_SRV_WAI_007_BR [Documentation] ... Check that the IUT responds with an error when an invalid Subscription request is sent - ... ETSI GS MEC 028 2.2.1, clause 7.5.3.4 - ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription #Outdated + ... ETSI GS MEC 028 2.3.1, clause 7.5.3.4 + ... https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.3.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Send a request for creating a subscription AssocStaSubscription_BR.json @@ -85,7 +101,7 @@ TP_MEC_MEC028_SRV_WAI_007_BR TP_MEC_MEC028_SRV_WAI_007_NF [Documentation] ... Check that the IUT responds with an error when a request with not existing parameters is sent - ... Reference "ETSI GS MEC 028 2.2.1, clause 7.5.3.1 + ... Reference "ETSI GS MEC 028 2.3.1, clause 7.5.3.1 Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Send a request for creating a subscription using wrong endpoint AssocStaSubscription.json @@ -96,7 +112,7 @@ TP_MEC_MEC028_SRV_WAI_007_NF Send a request for creating a subscription [Arguments] ${content} Log Creating a new subscription - #Set Headers {"Accept":"application/json"} + Set Headers {"Accept":"application/json"} Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} ${path} Catenate SEPARATOR= jsons/ ${content} @@ -109,7 +125,7 @@ Send a request for creating a subscription Send a request for creating a subscription using wrong endpoint [Arguments] ${content} Log Creating a new subscription - #Set Headers {"Accept":"application/json"} + Set Headers {"Accept":"application/json"} Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} ${path} Catenate SEPARATOR= jsons/ ${content} @@ -122,7 +138,7 @@ Retrieve the subscription information [Arguments] ${subscription_type} Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 - #Set Headers {"Accept":"application/json"} + Set Headers {"Accept":"application/json"} Set Headers {"Content-Type":"*/*"} Set Headers {"Authorization":"${TOKEN}"} GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?subscription_type=${subscription_type} @@ -137,4 +153,29 @@ Retrieve the subscription information using wrong endpoint Set Headers {"Authorization":"${TOKEN}"} GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions_INVALID_URI ${output}= Output response - Set Suite Variable ${response} ${output} \ No newline at end of file + Set Suite Variable ${response} ${output} + +Create New Subscription Info + [Arguments] ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + ${file}= Catenate SEPARATOR= jsons/ CreateAssocStaSubscription .json + ${body}= Get File ${file} + ${json_data}= Evaluate json.loads('''${body}''') json + ${new_href}= Set Variable ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT}/${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUB_ID} + Set To Dictionary ${json_data["_links"]["self"]} href=${new_href} + ${modified_json_string}= Evaluate json.dumps(${json_data}) + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${modified_json_string} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove Subscription Info + [Arguments] ${delete_url} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + DELETE ${delete_url} \ No newline at end of file diff --git a/MEC028/WAI/SUB/environment/variables.txt b/MEC028/WAI/SUB/environment/variables.txt index 0a66f36..963ae9f 100644 --- a/MEC028/WAI/SUB/environment/variables.txt +++ b/MEC028/WAI/SUB/environment/variables.txt @@ -4,8 +4,8 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} 127.0.0.1 -${MEC-APP_PORT} 8082 +${MEC-APP_HOST} mockoon +${MEC-APP_PORT} 3001 ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l @@ -14,5 +14,6 @@ ${SUB_TYPE} AssocStaSubscription ${SUB_FILTER} assoc_sta ${INVALID_SUB_FILTER} assocStaSub +${SUB_ID} 123 ${HREF} /wai/v2/subscriptions/1 ${CALLBACK_URI} http://callback.uri/1 \ No newline at end of file diff --git a/MEC028/WAI/SUB/jsons/AssocStaSubscription.json b/MEC028/WAI/SUB/jsons/AssocStaSubscription.json index 152ca49..db4d571 100644 --- a/MEC028/WAI/SUB/jsons/AssocStaSubscription.json +++ b/MEC028/WAI/SUB/jsons/AssocStaSubscription.json @@ -1,7 +1,19 @@ { + "_links": { + "self": { + "href": "/wai/v2/subscriptions/1" + } + }, "apId": { - "macId": "macId01" + "ipAddress": ["192.168.1.1", "2001:db8::1"], + "macId": "00:1A:2B:3C:4D:5E", + "ssid": ["Network1", "Network2"] + }, + "callbackReference": "http://example.com/callback", + "expiryDeadline": { + "nanoSeconds": 500000000, + "seconds": 1641234567 }, - "callbackReference": "http://callback.uri/1", "subscriptionType": "AssocStaSubscription" -} \ No newline at end of file + } + \ No newline at end of file diff --git a/MEC028/WAI/SUB/jsons/CreateAssocStaSubscription.json b/MEC028/WAI/SUB/jsons/CreateAssocStaSubscription.json new file mode 100644 index 0000000..3e04ff8 --- /dev/null +++ b/MEC028/WAI/SUB/jsons/CreateAssocStaSubscription.json @@ -0,0 +1,23 @@ +{ + "subscriptionType": "AssocStaSubscription", + "callbackReference": "http://meAppClient.example.com/wai/v2/notifications/1", + "_links": { + "self": { + "href": "http://meAppServer.example.com/wai/v2/subscriptions/sub123" + } + }, + "expiryDeadline": { + "seconds": 1977836800, + "nanoSeconds": 0 + }, + "apId": { + "bssid": "005C0A0A0A0A", + "ssid": [ + "myNetworkSsid" + ], + "macId": "macId01", + "ipAddress": [ + "10.10.100.1" + ] + } +} \ No newline at end of file -- GitLab