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