diff --git a/MEC028/WAI/AP_INFO/WaiApInfo.robot b/MEC028/WAI/AP_INFO/WaiApInfo.robot
index b8be44a7f29b9c6ff458bd4700b8fe237acc6189..c181ba049bc6b7b1132a84027b45ae1ab8cb1a53 100644
--- a/MEC028/WAI/AP_INFO/WaiApInfo.robot
+++ b/MEC028/WAI/AP_INFO/WaiApInfo.robot
@@ -14,8 +14,8 @@ Library     REST    ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT}    ssl_v
 TP_MEC_MEC028_SRV_WAI_001_OK
     [Documentation] 
     ...  Check that the IUT responds with the list of WLAN Access Point
-    ...  Reference "ETSI GS MEC 028 2.1.1, clause 7.3.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/ApInfo
+    ...  Reference "ETSI GS MEC 028 2.2.1, clause 7.3.3.1
+    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/ApInfo ##Outdated
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Retrieve the access point information
@@ -31,8 +31,8 @@ TP_MEC_MEC028_SRV_WAI_001_OK
 TP_MEC_MEC028_SRV_WAI_002_OK
     [Documentation] 
     ...  Check that the IUT responds with the list of WLAN Access Point filtered by the macId provided as query parameter 
-    ...  Reference "ETSI GS MEC 028 2.1.1, clause 7.3.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/ApInfo
+    ...  Reference "ETSI GS MEC 028 2.2.1, clause 7.3.3.1
+    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/ApInfo ##Outdated
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Retrieve the access point information using filters    ${filter} 
@@ -49,8 +49,8 @@ TP_MEC_MEC028_SRV_WAI_002_OK
 TP_MEC_MEC028_SRV_WAI_002_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.1.1, clause 7.3.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/ApInfo
+    ...  Reference "ETSI GS MEC 028 2.2.1, clause 7.3.3.1
+    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/ApInfo ##Outdated
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Retrieve the access point information using filters    ${bad_filter} 
diff --git a/MEC028/WAI/AP_INFO/environment/variables.txt b/MEC028/WAI/AP_INFO/environment/variables.txt
index ec621fedb2161f6ec78b3e3183b66e29b39caa83..0f20b2e2afce7307555bfb94507188687d96807b 100644
--- a/MEC028/WAI/AP_INFO/environment/variables.txt
+++ b/MEC028/WAI/AP_INFO/environment/variables.txt
@@ -1,7 +1,7 @@
 *** Variables ***
 ${apiRoot}        
 ${apiName}        wai
-${apiVersion}     v1
+${apiVersion}     v2
 
 ${MEC-APP_SCHEMA}                   http
 ${MEC-APP_HOST}                     127.0.0.1
diff --git a/MEC028/WAI/EXT_SUB/ExistingSubscription.robot b/MEC028/WAI/EXT_SUB/ExistingSubscription.robot
index 9ebcad0533c346a9a3ac05a774d14266b3098931..187ff91203c19be4db2cb2d499ce0f67524ae160 100644
--- a/MEC028/WAI/EXT_SUB/ExistingSubscription.robot
+++ b/MEC028/WAI/EXT_SUB/ExistingSubscription.robot
@@ -9,13 +9,12 @@ Library     String
 Library     OperatingSystem
 Library     REST    ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT}    ssl_verify=false
 
-#GET
 *** Test Cases ***
 TP_MEC_MEC028_SRV_WAI_008_OK
     [Documentation] 
     ...  Check that the IUT responds with the list of Subscription"
-    ...	 Reference "ETSI GS MEC 028 2.1.1, clause 7.6.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...	 Reference "ETSI GS MEC 028 2.2.1, clause 7.6.3.1
+    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ##Outdated
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Retrieve existing subscription information  ${SUB_ID}
@@ -28,21 +27,20 @@ TP_MEC_MEC028_SRV_WAI_008_OK
 TP_MEC_MEC028_SRV_WAI_008_NF
     [Documentation] 
     ...  Check that the IUT responds with an error when a request for existing subscription with incorrect parameters is sent"
-    ...	 Reference "ETSI GS MEC 028 2.1.1, clause 7.6.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...	 Reference "ETSI GS MEC 028 2.2.1, clause 7.6.3.1
+    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ##Outdated
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Retrieve existing subscription information  ${NOT_EXISTING_SUB_ID}
     Check HTTP Response Status Code Is    404
  
 
-#PUT
 *** Test Cases ***
 TP_MEC_MEC028_SRV_WAI_009_OK
     [Documentation] 
     ...  Check that the IUT responds with a Notification Subscription when it is modified"
-    ...	 Reference "ETSI GS MEC 028 2.1.1, clause 7.6.3.2
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...	 Reference "ETSI GS MEC 028 2.2.1, clause 7.6.3.2
+    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ##Outdated
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Modify existing subscription information  ${SUB_ID}   UpdateAssocStaSubscription.json
@@ -55,18 +53,18 @@ TP_MEC_MEC028_SRV_WAI_009_OK
 TP_MEC_MEC028_SRV_WAI_009_BR
     [Documentation] 
     ...  Check that the IUT responds with an error when an invalid field is set in the subscription modification request"
-    ...	 Reference "ETSI GS MEC 028 2.1.1, clause 7.6.3.2
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...	 Reference "ETSI GS MEC 028 2.2.1, clause 7.6.3.2
+    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription ##Outdated
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Modify existing subscription information  ${SUB_ID}   UpdateAssocStaSubscription_BR.json
     Check HTTP Response Status Code Is    400
 
-#DELETE
+
 TP_MEC_MEC028_SRV_WAI_010_OK
     [Documentation] 
     ...  Check that the IUT responds with 204 when an existing subscription is correctly deleted"
-    ...	 Reference "ETSI GS MEC 028 2.1.1, clause 7.6.3.5
+    ...	 Reference "ETSI GS MEC 028 2.2.1, clause 7.6.3.5
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Remove existing subscription information  ${SUB_ID}
@@ -75,7 +73,7 @@ TP_MEC_MEC028_SRV_WAI_010_OK
 TP_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.1.1, clause 7.6.3.5
+    ...	 Reference "ETSI GS MEC 028 2.2.1, clause 7.6.3.5
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Remove existing subscription information  ${NOT_EXISTING_SUB_ID}
diff --git a/MEC028/WAI/EXT_SUB/environment/variables.txt b/MEC028/WAI/EXT_SUB/environment/variables.txt
index 8e5fb8395c1c7e2675f30689b212982a0103fca9..d7beea87162ae10b50b7270001a5bf1fb1404bec 100644
--- a/MEC028/WAI/EXT_SUB/environment/variables.txt
+++ b/MEC028/WAI/EXT_SUB/environment/variables.txt
@@ -1,7 +1,7 @@
 *** Variables ***
 ${apiRoot}        
 ${apiName}        wai
-${apiVersion}     v1
+${apiVersion}     v2
 
 ${MEC-APP_SCHEMA}                   http
 ${MEC-APP_HOST}                     127.0.0.1
diff --git a/MEC028/WAI/MEAS/WaiMeasurement.robot b/MEC028/WAI/MEAS/WaiMeasurement.robot
new file mode 100644
index 0000000000000000000000000000000000000000..0aa1a6ddf95b22ffb21687fcc0972ccd005e5a24
--- /dev/null
+++ b/MEC028/WAI/MEAS/WaiMeasurement.robot
@@ -0,0 +1,189 @@
+''[Documentation]   robot --outputdir ../../outputs ./WaiMeasurement.robot
+...    Test Suite to validate WLAN Measurement API (MEAS) operations.
+
+*** Settings ***
+Resource    environment/variables.txt
+Resource    ../../../pics.txt
+Resource    ../../../GenericKeywords.robot
+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
+    [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
+    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
+    
+TP_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
+    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
+    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']}
+
+TP_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
+    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}
+    Check HTTP Response Status Code Is    400   
+
+TP_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"
+    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 Status Code Is    200
+    Should Be Equal As Strings  ${response['body']['measurementId']    ${MEAS_ID}
+    
+    
+
+TP_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"
+    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
+    [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"
+    Should Be True    ${PIC_MEC_SYSTEM} == 1
+    Should Be True    ${PIC_SERVICES} == 1  
+    ${path}    Catenate    SEPARATOR=      jsons/     MeasurementConfigUpdate.json
+    ${body}    Get File    ${path}
+    ${json_object}=	Evaluate  json.loads('''${body}''')  json 
+    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']['measurementInfo']}    ${json_object['measurementInfo']}
+
+
+
+TP_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"
+    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
+    
+
+TP_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"
+    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
+    [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"
+    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
+    
+  
+*** Keywords ***
+Retrieve a list of list of measurement configurations
+    Should Be True    ${PIC_MEC_SYSTEM} == 1
+    Should Be True    ${PIC_SERVICES} == 1
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    GET     ${apiRoot}/${apiName}/${apiVersion}/queries/measurement
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output}
+   
+Create a new measurement configuration
+    [Arguments]   ${body}
+    Should Be True    ${PIC_MEC_SYSTEM} == 1
+    Should Be True    ${PIC_SERVICES} == 1
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    POST     ${apiRoot}/${apiName}/${apiVersion}/queries/measurements   ${body}
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output}
+    
+
+Retrieve a specified measurement configuration
+    [Arguments]   ${MEAS_CONF_ID}
+    Should Be True    ${PIC_MEC_SYSTEM} == 1
+    Should Be True    ${PIC_SERVICES} == 1
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    GET     ${apiRoot}/${apiName}/${apiVersion}/queries/measurement/${MEAS_CONF_ID}
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output}
+    
+Update a specified measurement configuration
+    [Arguments]   ${MEAS_CONF_ID}  ${content}
+    Should Be True    ${PIC_MEC_SYSTEM} == 1
+    Should Be True    ${PIC_SERVICES} == 1
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    GET     ${apiRoot}/${apiName}/${apiVersion}/queries/measurement/${MEAS_CONF_ID}    ${body}
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output}
+    
+
+
+Delete a specified measurement configuration
+    [Arguments]   ${MEAS_CONF_ID}
+    Should Be True    ${PIC_MEC_SYSTEM} == 1
+    Should Be True    ${PIC_SERVICES} == 1
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    GET     ${apiRoot}/${apiName}/${apiVersion}/queries/measurement/${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
new file mode 100644
index 0000000000000000000000000000000000000000..bb9bd9dd503e35ce794bb8f8e3f39e7f10690e1d
--- /dev/null
+++ b/MEC028/WAI/MEAS/environment/variables.txt
@@ -0,0 +1,14 @@
+*** Variables ***
+${apiRoot}        
+${apiName}        wai
+${apiVersion}     v2
+
+${MEC-APP_SCHEMA}                   http
+${MEC-APP_HOST}                     127.0.0.1
+${MEC-APP_PORT}                     8082
+
+${TOKEN}                            Basic YWxhZGRpbjpvcGVuc2VzYW1l
+
+${STA_ID}    		123
+${MEAS_ID}    		456
+${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
new file mode 100644
index 0000000000000000000000000000000000000000..deb6857866480a2595a843d4f02d4ff012d4e0d6
--- /dev/null
+++ b/MEC028/WAI/MEAS/jsons/MeasurementConfig.json
@@ -0,0 +1,16 @@
+{
+  "staId": [
+    {
+      "macId": "123"
+    }
+  ],
+  "measurementId": "123",
+  "measurementInfo": {
+    "measurementDuration": 10
+  },
+  "_links": {
+    "self": {
+      "href": "/link/"
+    }
+  }
+}
\ No newline at end of file
diff --git a/MEC028/WAI/MEAS/jsons/MeasurementConfigError.json b/MEC028/WAI/MEAS/jsons/MeasurementConfigError.json
new file mode 100644
index 0000000000000000000000000000000000000000..a2e38f2087768821fda81296927b16e971455c6d
--- /dev/null
+++ b/MEC028/WAI/MEAS/jsons/MeasurementConfigError.json
@@ -0,0 +1,16 @@
+{
+  "StaIdentities": [
+    {
+      "macId": "123"
+    }
+  ],
+  "measurementId": "123",
+  "measurementInfo": {
+    "measurementDuration": 10
+  },
+  "_links": {
+    "self": {
+      "href": "/link/"
+    }
+  }
+}
\ No newline at end of file
diff --git a/MEC028/WAI/MEAS/jsons/MeasurementConfigUpdate.json b/MEC028/WAI/MEAS/jsons/MeasurementConfigUpdate.json
new file mode 100644
index 0000000000000000000000000000000000000000..b758cf4353c89e140b37f8533d9c4e9326d53a3f
--- /dev/null
+++ b/MEC028/WAI/MEAS/jsons/MeasurementConfigUpdate.json
@@ -0,0 +1,16 @@
+{
+  "staId": [
+    {
+      "macId": "123"
+    }
+  ],
+  "measurementId": "123",
+  "measurementInfo": {
+    "measurementDuration": 50
+  },
+  "_links": {
+    "self": {
+      "href": "/link/"
+    }
+  }
+}
\ No newline at end of file
diff --git a/MEC028/WAI/MEAS/schemas/MeasurementConfig.schema.json b/MEC028/WAI/MEAS/schemas/MeasurementConfig.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..d393606cf81498b58422515178c3ab48c4525b7c
--- /dev/null
+++ b/MEC028/WAI/MEAS/schemas/MeasurementConfig.schema.json
@@ -0,0 +1,329 @@
+{
+				"properties": {
+					"_links": {
+						"properties": {
+							"self": {
+								"properties": {
+									"href": {
+										"description": "URI referring to a resource",
+										"type": "string",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "String"
+									}
+								},
+								"required": [
+									"href"
+								],
+								"type": "object",
+								"x-etsi-ref": "6.5.23"
+							}
+						},
+						"required": [
+							"self"
+						],
+						"type": "object",
+						"x-etsi-mec-cardinality": "0..1"
+					},
+					"staId": {
+						"minItems": 1,
+						"type": "array",
+						"items": {
+							"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"
+						}
+					},
+					"measurementId": {
+						"type": "string"
+					},
+					"measurementInfo": {
+						"properties": {
+							"measurementDuration": {
+								"type": "integer",
+								"format": "unit16"
+							},
+							"randomInterval": {
+								"type": "integer",
+								"format": "unit16"
+							},
+							"channelLoadConf": {
+								"properties": {
+									"apId": {
+										"properties": {
+											"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"
+											},
+											"macId": {
+												"description": "Unique Identifier assigned to an 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 including Basic Service Set and Extended Service Set.",
+												"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.3"
+									},
+									"cChannelId": {
+										"description": "Channel number which load is reported",
+										"type": "integer",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "Integer"
+									},
+									"channelLoad": {
+										"description": "Channel load as per IEEE 802.11-2012 [8], section 11.11.9.3",
+										"type": "integer",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "Integer"
+									}
+								},
+								"required": [
+									"apId",
+									"cChannelId",
+									"channelLoad"
+								],
+								"type": "object",
+								"x-etsi-ref": "6.5.24"
+							},
+							"beaconRequestConf": {
+								"properties": {
+									"bssId": {
+										"description": "The BSSID field indicates the BSSID of the BSS(s) for which a beacon report is requested. When requesting beacon reports for all BSSs on the channel, the BSSID field contains the wildcard BSSID.",
+										"items": {
+											"type": "string"
+										},
+										"minItems": 1,
+										"type": "array",
+										"x-etsi-mec-cardinality": "1..N",
+										"x-etsi-mec-origin-type": "String"
+									},
+									"channelId": {
+										"description": "Channel number to scan. A Channel Number of 0 indicates a request to make iterative measurements for all supported channels in the Operating Class where the measurement is permitted on the channel and the channel is valid for the current regulatory domain. A Channel Number of 255 indicates a request to make iterative measurements for all supported channels in the current Operating Class listed in the latest AP Channel Report received from the serving AP.",
+										"type": "integer",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "Integer"
+									},
+									"measurementMode": {
+										"description": "0 for passive.\n1 for active.\n2 for beacon table.",
+										"type": "integer",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "Integer"
+									},
+									"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 requested.",
+										"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"
+									}
+								},
+								"required": [
+									"staId",
+									"channelId",
+									"measurementMode",
+									"bssId",
+									"ssId",
+									"reportingCondition"
+								],
+								"type": "object",
+								"x-etsi-ref": "6.5.25"
+							},
+							"staStatisticsConf": {
+								"properties": {
+									"groupIdentity": {
+										"description": "As per table T 9-114 of IEEE 802.11-2012 [8].",
+										"type": "integer",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "Integer"
+									},
+									"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"
+									},
+									"triggerCondition": {
+										"type": "integer"
+									},
+									"triggerTimeout": {
+										"description": "The Trigger Timeout field contains a value in units of 100 TUs during which a measuring STA does not generate further triggered STA Statistics Reports after a trigger condition has been met.",
+										"type": "integer",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "Integer"
+									},
+									"triggeredReport": {
+										"type": "boolean"
+									}
+								},
+								"required": [
+									"staId",
+									"groupIdentity",
+									"triggeredReport",
+									"triggerTimeout",
+									"triggerCondition"
+								],
+								"type": "object",
+								"x-etsi-ref": "6.5.26"
+							},
+							"neighborReportConf": {
+								"properties": {
+									"ssid": {
+										"type": "string"
+									},
+									"bssid": {
+										"type": "string"
+									}
+								}
+							}
+						},
+						"type": "object",
+						"x-etsi-ref": "6.2.3"
+					}
+				},
+				"required": [
+					"staId",
+					"measurementId",
+					"measurementInfo"
+				],
+				"type": "object"
+			}
\ No newline at end of file
diff --git a/MEC028/WAI/MEAS/schemas/MeasurementConfigLinkList.schema.json b/MEC028/WAI/MEAS/schemas/MeasurementConfigLinkList.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..976b69238c52758e6bcf59b4c7b073d9d10507d8
--- /dev/null
+++ b/MEC028/WAI/MEAS/schemas/MeasurementConfigLinkList.schema.json
@@ -0,0 +1,46 @@
+{
+	"required": [
+		"_links"
+	],
+	"properties": {
+		"_links": {
+			"required": [
+				"self"
+			],
+			"properties": {
+				"self": {
+					"properties": {
+						"href": {
+							"description": "URI referring to a resource",
+							"type": "string",
+							"x-etsi-mec-cardinality": "1",
+							"x-etsi-mec-origin-type": "String"
+						}
+					},
+					"required": [
+						"href"
+					],
+					"type": "object",
+					"x-etsi-ref": "6.5.23"
+				}
+			}
+		},
+		"measurementConfig": {
+			"type": "array",
+			"items": {
+				"required": [
+					"href",
+					"measurementId"
+				],
+				"properties": {
+					"href": {
+						"type": "string"
+					},
+					"measurementId": {
+						"type": "string"
+					}
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/MEC028/WAI/STA_INFO/WaiStaInfo.robot b/MEC028/WAI/STA_INFO/WaiStaInfo.robot
index 3c58c8defbb3de3d988f72864d1b433ef7aaf22c..7cc7b4e0789b8f2069e8d90227eb030d2959aa30 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.1.1, clause 7.4.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schema/StaInfo
+    ...  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
     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.1.1, clause 7.4.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schema/StaInfo
+    ...  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
     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.1.1, clause 7.4.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schema/StaInfo
+    ...  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
     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 c64df1ba8846d3b81f87df694691c034dc5210c1..79e2b50d7252eb9ea39b85c71ac9375dd5d0288b 100644
--- a/MEC028/WAI/STA_INFO/environment/variables.txt
+++ b/MEC028/WAI/STA_INFO/environment/variables.txt
@@ -1,7 +1,7 @@
 *** Variables ***
 ${apiRoot}        
 ${apiName}        wai
-${apiVersion}     v1
+${apiVersion}     v2
 
 ${MEC-APP_SCHEMA}                   http
 ${MEC-APP_HOST}                     127.0.0.1
diff --git a/MEC028/WAI/SUB/WaiSubscription.robot b/MEC028/WAI/SUB/WaiSubscription.robot
index cca06e3157b367ae5ffa9af9ec59f9a18ebdce02..1db1a1d1c56e2c6aabf48467a8871abb3d8cacb9 100644
--- a/MEC028/WAI/SUB/WaiSubscription.robot
+++ b/MEC028/WAI/SUB/WaiSubscription.robot
@@ -13,8 +13,8 @@ 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.1.1, clause 7.5.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...  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
         
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
@@ -29,8 +29,8 @@ TP_MEC_MEC028_SRV_WAI_005_OK
 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.1.1, clause 7.5.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...  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
         
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
@@ -42,8 +42,8 @@ TP_MEC_MEC028_SRV_WAI_006_OK
 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.1.1, clause 7.5.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...  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
         
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
@@ -53,16 +53,16 @@ TP_MEC_MEC028_SRV_WAI_006_BR
 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.1.1, clause 7.5.3.1
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...  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
     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.1.1, clause 7.5.3.4
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...  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
     Should Be True    ${PIC_MEC_SYSTEM} == 1
     Should Be True    ${PIC_SERVICES} == 1
     Send a request for creating a subscription  AssocStaSubscription.json
@@ -75,8 +75,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.1.1, clause 7.5.3.4
-    ...  https://forge.etsi.org/rep/mec/gs028-wai-api/blob/v2.1.1/WlanInformationApi.yaml#/schemas/AssocStaSubscription
+    ...  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
     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 +85,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.1.1, clause 7.5.3.1
+    ...  Reference "ETSI GS MEC 028 2.2.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
diff --git a/MEC028/WAI/SUB/environment/variables.txt b/MEC028/WAI/SUB/environment/variables.txt
index dfa2d415cafa40cb7a529c53cef423977006867e..0a66f360896900ae0697e4be24a673400c6d1f57 100644
--- a/MEC028/WAI/SUB/environment/variables.txt
+++ b/MEC028/WAI/SUB/environment/variables.txt
@@ -1,7 +1,7 @@
 *** Variables ***
 ${apiRoot}        
 ${apiName}        wai
-${apiVersion}     v1
+${apiVersion}     v2
 
 ${MEC-APP_SCHEMA}                   http
 ${MEC-APP_HOST}                     127.0.0.1
@@ -14,5 +14,5 @@ ${SUB_TYPE}          AssocStaSubscription
 ${SUB_FILTER}          assoc_sta
 ${INVALID_SUB_FILTER}          assocStaSub
 
-${HREF}          /wai/v1/subscriptions/1
+${HREF}          /wai/v2/subscriptions/1
 ${CALLBACK_URI}          http://callback.uri/1
\ No newline at end of file