From 6e5604322a32384890d428c23bf690688ebdee36 Mon Sep 17 00:00:00 2001 From: Gabriele Scivoletto Date: Mon, 8 Jan 2024 12:49:50 +0100 Subject: [PATCH] draft of MEC30 331 TCs --- MEC030/SRV/V2X/V2XInformationService.robot | 222 +++++++++++------- MEC030/SRV/V2X/environment/variables.txt | 6 +- MEC030/SRV/V2X/jsons/PredictedQoS_BR.json | 2 +- MEC030/SRV/V2X/jsons/PredictedQoS_NF.json | 2 +- .../SRV/V2X/jsons/V2XDistributionServers.json | 53 +++++ .../V2X/jsons/V2XDistributionServers_BR.json | 61 +++++ .../V2X/jsons/V2XDistributionServers_NF.json | 46 ++++ .../schemas/Pc5ProvisioningInfo.schema.json | 2 +- .../V2XDistributionServers.schema.json | 172 ++++++++++++++ 9 files changed, 470 insertions(+), 96 deletions(-) create mode 100644 MEC030/SRV/V2X/jsons/V2XDistributionServers.json create mode 100644 MEC030/SRV/V2X/jsons/V2XDistributionServers_BR.json create mode 100644 MEC030/SRV/V2X/jsons/V2XDistributionServers_NF.json create mode 100644 MEC030/SRV/V2X/schemas/V2XDistributionServers.schema.json diff --git a/MEC030/SRV/V2X/V2XInformationService.robot b/MEC030/SRV/V2X/V2XInformationService.robot index 915cbc6..5a7b5bd 100644 --- a/MEC030/SRV/V2X/V2XInformationService.robot +++ b/MEC030/SRV/V2X/V2XInformationService.robot @@ -10,39 +10,39 @@ Library OperatingSystem ##GET on ${apiRoot}/${apiName}/${apiVersion}/queries/uu_unicast_provisioning_info *** Test Cases *** -TP_MEC_MEC030_SRV_V2X_001_OK_01 +TC_MEC_MEC030_SRV_V2X_001_OK_01 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu unicast when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over Uu unicast using ecgi filter ${ECGI} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is UuUnicastProvisioningInfo -TP_MEC_MEC030_SRV_V2X_001_OK_02 +TC_MEC_MEC030_SRV_V2X_001_OK_02 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu unicast when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over Uu unicast using geographical filter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is UuUnicastProvisioningInfo -TP_MEC_MEC030_SRV_V2X_001_BR +TC_MEC_MEC030_SRV_V2X_001_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 030 V2.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over Uu unicast using geographical filter wrong parameter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 400 -TP_MEC_MEC030_SRV_V2X_001_NF +TC_MEC_MEC030_SRV_V2X_001_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over Uu unicast using ecgi filter ${UNKNOWN_ECGI} Check HTTP Response Status Code Is 404 @@ -50,35 +50,35 @@ TP_MEC_MEC030_SRV_V2X_001_NF ##GET on ${apiRoot}/${apiName}/${apiVersion}/queries/uu_mbms_provisioning_info -TP_MEC_MEC030_SRV_V2X_002_OK_01 +TC_MEC_MEC030_SRV_V2X_002_OK_01 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu MBM when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.4.3.1 Retrieve configured provisioning information over Uu MBM using ecgi filter ${ECGI} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is UuMbmsProvisioningInfo -TP_MEC_MEC030_SRV_V2X_002_OK_02 +TC_MEC_MEC030_SRV_V2X_002_OK_02 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu MBMS when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.4.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over Uu MBM using geographical filter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is UuMbmsProvisioningInfo -TP_MEC_MEC030_SRV_V2X_002_BR +TC_MEC_MEC030_SRV_V2X_002_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 030 V2.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.4.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over Uu MBM using geographical filter wrong parameter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 400 -TP_MEC_MEC030_SRV_V2X_002_NF +TC_MEC_MEC030_SRV_V2X_002_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.4.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over Uu MBM using geographical filter ${UNKNOWN_LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 404 @@ -86,66 +86,94 @@ TP_MEC_MEC030_SRV_V2X_002_NF ##GET on ${apiRoot}/${apiName}/${apiVersion}/queries/pc5_provisioning_info -TP_MEC_MEC030_SRV_V2X_003_OK_01 +TC_MEC_MEC030_SRV_V2X_003_OK_01 [Documentation] ... Check that the IUT responds with a configured provisioning information over PC5 when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over PC5 using ecgi filter ${ECGI} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Pc5ProvisioningInfo -TP_MEC_MEC030_SRV_V2X_003_OK_02 +TC_MEC_MEC030_SRV_V2X_003_OK_02 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu MBMS when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over PC5 using geographical filter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is Pc5ProvisioningInfo -TP_MEC_MEC030_SRV_V2X_003_BR +TC_MEC_MEC030_SRV_V2X_003_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 030 V2.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over PC5 using geographical filter wrong parameter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 400 -TP_MEC_MEC030_SRV_V2X_003_NF +TC_MEC_MEC030_SRV_V2X_003_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Retrieve configured provisioning information over PC5 using ecgi filter ${UNKNOWN_ECGI} Check HTTP Response Status Code Is 404 +##POST on ${apiRoot}/${apiName}/${apiVersion}/provide_v2x_msg_distribution_server_info +TC_MEC_MEC030_SRV_V2X_004_OK + [Documentation] + ... Check that the IUT processes properly a request to information of V2X Message Distribution servers + ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 + ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml + Request v2x message distribution servers V2XDistributionServers + Check HTTP Response Body Json Schema Is V2XDistributionServers + Check HTTP Response Status Code Is 200 + +TC_MEC_MEC030_SRV_V2X_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 030 v3.1.1, clause 7.6.3.4 + ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml + Request v2x message distribution servers V2XDistributionServers_BR + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC030_SRV_V2X_004_NF + [Documentation] + ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application + ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 + ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml + Request v2x message distribution servers V2XDistributionServers_NF + Check HTTP Response Status Code Is 404 + + ##POST on ${apiRoot}/${apiName}/${apiVersion}/provide_predicted_qos -TP_MEC_MEC030_SRV_V2X_004_OK +TC_MEC_MEC030_SRV_V2X_005_OK [Documentation] ... Check that the IUT sends a request about QoS information for a vehicular UE when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Request predicted QoS PredictedQoS.json Check HTTP Response Body Json Schema Is PredictedQoS Check HTTP Response Status Code Is 200 -TP_MEC_MEC030_SRV_V2X_004_BR +TC_MEC_MEC030_SRV_V2X_005_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 030 V2.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml ##Wrong parameter into JSON: locality instead of locationGranularity Request predicted QoS PredictedQoS_BR.json Check HTTP Response Status Code Is 400 -TP_MEC_MEC030_SRV_V2X_004_NF +TC_MEC_MEC030_SRV_V2X_005_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Request predicted QoS PredictedQoS_NF.json Check HTTP Response Status Code Is 404 @@ -153,18 +181,18 @@ TP_MEC_MEC030_SRV_V2X_004_NF ##POST on ${apiRoot}/${apiName}/${apiVersion}/publish_v2x_message -TP_MEC_MEC030_SRV_V2X_005_OK +TC_MEC_MEC030_SRV_V2X_006_OK [Documentation] ... Check that the IUT processes properly a request to publish a V2X message - ... ETSI GS MEC 030 V2.1.1, clause 7.7.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.7.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Publish V2X message V2xMsgPublication.json Check HTTP Response Status Code Is 204 -TP_MEC_MEC030_SRV_V2X_005_BR +TC_MEC_MEC030_SRV_V2X_006_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 030 V2.1.1, clause 7.7.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.7.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Publish V2X message V2xMsgPublication_BR.json Check HTTP Response Status Code Is 400 @@ -172,10 +200,10 @@ TP_MEC_MEC030_SRV_V2X_005_BR ##GET on ${apiRoot}/${apiName}/${apiVersion}/subscription -TP_MEC_MEC030_SRV_V2X_006_OK_01 +TC_MEC_MEC030_SRV_V2X_007_OK_01 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -189,10 +217,10 @@ TP_MEC_MEC030_SRV_V2X_006_OK_01 END Should Be True ${passed} -TP_MEC_MEC030_SRV_V2X_006_OK_02 +TC_MEC_MEC030_SRV_V2X_007_OK_02 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -206,10 +234,10 @@ TP_MEC_MEC030_SRV_V2X_006_OK_02 END Should Be True ${passed} -TP_MEC_MEC030_SRV_V2X_006_OK_03 +TC_MEC_MEC030_SRV_V2X_007_OK_03 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -223,10 +251,10 @@ TP_MEC_MEC030_SRV_V2X_006_OK_03 END Should Be True ${passed} -TP_MEC_MEC030_SRV_V2X_006_OK_04 +TC_MEC_MEC030_SRV_V2X_008_OK_04 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -241,10 +269,10 @@ TP_MEC_MEC030_SRV_V2X_006_OK_04 Should Be True ${passed} -TP_MEC_MEC030_SRV_V2X_006_BR +TC_MEC_MEC030_SRV_V2X_008_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 030 V2.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -253,10 +281,10 @@ TP_MEC_MEC030_SRV_V2X_006_BR ##POST on ${apiRoot}/${apiName}/${apiVersion}/subscription -TP_MEC_MEC030_SRV_V2X_007_OK_01 +TC_MEC_MEC030_SRV_V2X_009_OK_01 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -271,10 +299,10 @@ TP_MEC_MEC030_SRV_V2X_007_OK_01 Should Be Equal As Strings ${json_object['filterCriteria']} ${response['body']['filterCriteria']} Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_007_OK_02 +TC_MEC_MEC030_SRV_V2X_009_OK_02 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -290,10 +318,10 @@ TP_MEC_MEC030_SRV_V2X_007_OK_02 Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_007_OK_03 +TC_MEC_MEC030_SRV_V2X_009_OK_03 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -308,10 +336,10 @@ TP_MEC_MEC030_SRV_V2X_007_OK_03 Should Be Equal As Strings ${json_object['filterCriteria']} ${response['body']['filterCriteria']} Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_007_OK_04 +TC_MEC_MEC030_SRV_V2X_009_OK_04 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -328,10 +356,10 @@ TP_MEC_MEC030_SRV_V2X_007_OK_04 Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_007_BR +TC_MEC_MEC030_SRV_V2X_009_BR [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 V2.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -343,10 +371,10 @@ TP_MEC_MEC030_SRV_V2X_007_BR ##GET on ${apiRoot}/${apiName}/${apiVersion}/subscriptions/{subscriptionId} -TP_MEC_MEC030_SRV_V2X_008_OK_01 +TC_MEC_MEC030_SRV_V2X_010_OK_01 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -358,10 +386,10 @@ TP_MEC_MEC030_SRV_V2X_008_OK_01 Should Not Be Empty ${response['body']['filterCriteria']} Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_008_OK_02 +TC_MEC_MEC030_SRV_V2X_010_OK_02 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -374,10 +402,10 @@ TP_MEC_MEC030_SRV_V2X_008_OK_02 Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_008_OK_03 +TC_MEC_MEC030_SRV_V2X_010_OK_03 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -389,10 +417,10 @@ TP_MEC_MEC030_SRV_V2X_008_OK_03 Should Not Be Empty ${response['body']['filterCriteria']} Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_008_OK_04 +TC_MEC_MEC030_SRV_V2X_010_OK_04 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -404,10 +432,10 @@ TP_MEC_MEC030_SRV_V2X_008_OK_04 Should Not Be Empty ${response['body']['filterCriteria']} Should Not Be Empty ${response['body']['_links']['self']['href']} -TP_MEC_MEC030_SRV_V2X_008_BR +TC_MEC_MEC030_SRV_V2X_010_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 030 V2.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -415,10 +443,10 @@ TP_MEC_MEC030_SRV_V2X_008_BR Check HTTP Response Status Code Is 400 -TP_MEC_MEC030_SRV_V2X_008_NF +TC_MEC_MEC030_SRV_V2X_010_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -428,10 +456,10 @@ TP_MEC_MEC030_SRV_V2X_008_NF ##PUT on ${apiRoot}/${apiName}/${apiVersion}/subscriptions/{subscriptionId} -TP_MEC_MEC030_SRV_V2X_009_OK_01 +TC_MEC_MEC030_SRV_V2X_011_OK_01 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -446,10 +474,10 @@ TP_MEC_MEC030_SRV_V2X_009_OK_01 Should Not Be Empty ${response['body']['_links']['self']['href']} Should Be Equal As Strings ${json_object['filterCriteria']} ${response['body']['filterCriteria']} -TP_MEC_MEC030_SRV_V2X_009_OK_02 +TC_MEC_MEC030_SRV_V2X_011_OK_02 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -464,10 +492,10 @@ TP_MEC_MEC030_SRV_V2X_009_OK_02 Should Not Be Empty ${response['body']['_links']['self']['href']} Should Be Equal As Strings ${json_object['filterCriteria']} ${response['body']['filterCriteria']} -TP_MEC_MEC030_SRV_V2X_009_OK_03 +TC_MEC_MEC030_SRV_V2X_011_OK_03 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -482,10 +510,10 @@ TP_MEC_MEC030_SRV_V2X_009_OK_03 Should Not Be Empty ${response['body']['_links']['self']['href']} Should Be Equal As Strings ${json_object['filterCriteria']} ${response['body']['filterCriteria']} -TP_MEC_MEC030_SRV_V2X_009_OK_04 +TC_MEC_MEC030_SRV_V2X_011_OK_04 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -500,10 +528,10 @@ TP_MEC_MEC030_SRV_V2X_009_OK_04 Should Not Be Empty ${response['body']['_links']['self']['href']} Should Be Equal As Strings ${json_object['filterCriteria']} ${response['body']['filterCriteria']} -TP_MEC_MEC030_SRV_V2X_009_BR +TC_MEC_MEC030_SRV_V2X_011_BR [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -513,10 +541,10 @@ TP_MEC_MEC030_SRV_V2X_009_BR Update existing subscription ${SUB_PROV_CHG_UU_UNI_ID} ${body} Check HTTP Response Status Code Is 400 -TP_MEC_MEC030_SRV_V2X_009_NF +TC_MEC_MEC030_SRV_V2X_011_NF [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -528,40 +556,40 @@ TP_MEC_MEC030_SRV_V2X_009_NF Check HTTP Response Status Code Is 404 ##DELETE on ${apiRoot}/${apiName}/${apiVersion}/subscriptions/{subscriptionId} -TP_MEC_MEC030_SRV_V2X_010_OK_01 +TC_MEC_MEC030_SRV_V2X_012_OK_01 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Remove existing subscription ${SUB_PROV_CHG_UU_UNI_ID} Check HTTP Response Status Code Is 204 -TP_MEC_MEC030_SRV_V2X_010_OK_02 +TC_MEC_MEC030_SRV_V2X_012_OK_02 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Remove existing subscription ${SUB_PROV_CHG_UU_MBMS_ID} Check HTTP Response Status Code Is 204 -TP_MEC_MEC030_SRV_V2X_010_OK_03 +TC_MEC_MEC030_SRV_V2X_012_OK_03 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 Remove existing subscription ${SUB_PROV_CHG_PC5_ID} Check HTTP Response Status Code Is 204 -TP_MEC_MEC030_SRV_V2X_010_OK_04 +TC_MEC_MEC030_SRV_V2X_012_OK_04 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -569,10 +597,10 @@ TP_MEC_MEC030_SRV_V2X_010_OK_04 Check HTTP Response Status Code Is 204 -TP_MEC_MEC030_SRV_V2X_010_NF +TC_MEC_MEC030_SRV_V2X_012_NF [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 V2.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/blob/master/MEC030_V2XInformationService.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -588,7 +616,7 @@ Retrieve configured provisioning information over Uu unicast using ecgi filter Set Headers {"Accept":"application/json"} Set Headers {"Content-Type":"*/*"} Set Headers {"Authorization":"${TOKEN}"} - Set Headers {"Content-Length":"0"} + Set Headers {"Content-Length":"0"} GET ${apiRoot}/${apiName}/${apiVersion}/queries/uu_unicast_provisioning_info?location_info=ecgi,${value} ${output}= Output response Set Suite Variable ${response} ${output} @@ -711,7 +739,21 @@ Request predicted QoS Post ${apiRoot}/${apiName}/${apiVersion}/provide_predicted_qos ${body} ${output}= Output response Set Suite Variable ${response} ${output} - + + +Request v2x message distribution servers + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Length":"0"} + ${path} Catenate SEPARATOR= jsons/ ${content} .json + ${body} Get File ${path} + Post ${apiRoot}/${apiName}/${apiVersion}/provide_v2x_msg_distribution_server_info ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} Publish V2X message diff --git a/MEC030/SRV/V2X/environment/variables.txt b/MEC030/SRV/V2X/environment/variables.txt index 198cebb..c4ad9e4 100644 --- a/MEC030/SRV/V2X/environment/variables.txt +++ b/MEC030/SRV/V2X/environment/variables.txt @@ -1,13 +1,13 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8082 +${HOST} mockoon +${PORT} 3005 ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} ${apiName} vis -${apiVersion} v1 +${apiVersion} v2 # Specific variables ${LOCATION_INFO_QUERY_PARAM} location_info diff --git a/MEC030/SRV/V2X/jsons/PredictedQoS_BR.json b/MEC030/SRV/V2X/jsons/PredictedQoS_BR.json index 1ddbf46..7d0cdfe 100644 --- a/MEC030/SRV/V2X/jsons/PredictedQoS_BR.json +++ b/MEC030/SRV/V2X/jsons/PredictedQoS_BR.json @@ -1,5 +1,5 @@ { - "localityGranularity": "10", + "localityGranularity": "11", "routes": [{ "routeinfo": [ { diff --git a/MEC030/SRV/V2X/jsons/PredictedQoS_NF.json b/MEC030/SRV/V2X/jsons/PredictedQoS_NF.json index 3086833..9ab022a 100644 --- a/MEC030/SRV/V2X/jsons/PredictedQoS_NF.json +++ b/MEC030/SRV/V2X/jsons/PredictedQoS_NF.json @@ -1,5 +1,5 @@ { - "locationGranularity": "10", + "locationGranularity": "12", "routes": [{ "routeinfo": [ { diff --git a/MEC030/SRV/V2X/jsons/V2XDistributionServers.json b/MEC030/SRV/V2X/jsons/V2XDistributionServers.json new file mode 100644 index 0000000..44bb360 --- /dev/null +++ b/MEC030/SRV/V2X/jsons/V2XDistributionServers.json @@ -0,0 +1,53 @@ +{ + "V2xMsgDistributionServerInfo": { + "locationInfo": [ + { + "ecgi": { + "cellId": { + "cellId": "01010101010101010101010101" + }, + "plmn": { + "mcc": "123", + "mnc": "456" + } + }, + "geoArea": { + "latitude": 37.7749, + "longitude": -122.4194 + } + }, + { + "ecgi": { + "cellId": { + "cellId": "02020202020202020202020202" + }, + "plmn": { + "mcc": "789", + "mnc": "012" + } + } + } + ], + "v2xMsgDistributionServer": [ + { + "infoProtocol": { + "msgProtocol": [ + 0, + 1, + 2 + ], + "protImplementation": "Java" + } + }, + { + "infoProtocol": { + "msgProtocol": [ + 3, + 4 + ], + "protImplementation": "Python" + } + } + ] + } +} \ No newline at end of file diff --git a/MEC030/SRV/V2X/jsons/V2XDistributionServers_BR.json b/MEC030/SRV/V2X/jsons/V2XDistributionServers_BR.json new file mode 100644 index 0000000..7013986 --- /dev/null +++ b/MEC030/SRV/V2X/jsons/V2XDistributionServers_BR.json @@ -0,0 +1,61 @@ +{ + "V2xMsgDistributionServerInfo": { + "locationInfo": [ + { + "ecgi": { + "cellId": { + "cellId": "01010101010101010101010101" + }, + "plmn": { + "mcc": "123", + "mnc": "456" + } + }, + "geoArea": { + "latitude": 37.7749, + "longitude": -122.4194 + } + }, + { + "ecgi": { + "cellId": { + "cellId": "02020202020202020202020202" + }, + "plmn": { + "mcc": "789", + "mnc": "012" + } + } + } + ], + "v2xMsgDistributionServer": [ + { + "infoConnection": { + "ipAddress": "192.168.1.1", + "port_number": 8080 + }, + "infoProtocol": { + "msgProtocol": [ + 0, + 1, + 2 + ], + "protImplementation": "Java" + } + }, + { + "infoConnection": { + "ipAddress": "10.0.0.1", + "port_number": 8888 + }, + "infoProtocol": { + "msgProtocol": [ + 3, + 4 + ], + "protImplementation": "Python" + } + } + ] + } +} \ No newline at end of file diff --git a/MEC030/SRV/V2X/jsons/V2XDistributionServers_NF.json b/MEC030/SRV/V2X/jsons/V2XDistributionServers_NF.json new file mode 100644 index 0000000..167d5cc --- /dev/null +++ b/MEC030/SRV/V2X/jsons/V2XDistributionServers_NF.json @@ -0,0 +1,46 @@ +{ + "V2xMsgDistributionServerInfo": { + "locationInfo": [ + { + "ecgi": { + "cellId": { + "cellId": "01010101010101010101010101" + }, + "plmn": { + "mcc": "123", + "mnc": "456" + } + }, + "geoArea": { + "latitude": 37.7749, + "longitude": -122.4194 + } + }, + { + "ecgi": { + "cellId": { + "cellId": "02020202020202020202020202" + }, + "plmn": { + "mcc": "789", + "mnc": "012" + } + } + } + ], + "v2xMsgDistributionServer": [ + { + "infoConnection": { + "ipAddress": "192.168.1.1", + "port_number": 8080 + }, + "infoProtocol": { + "msgProtocol": [ + 0 + ], + "protImplementation": "Java" + } + } + ] + } +} \ No newline at end of file diff --git a/MEC030/SRV/V2X/schemas/Pc5ProvisioningInfo.schema.json b/MEC030/SRV/V2X/schemas/Pc5ProvisioningInfo.schema.json index f6d972d..9b305ed 100644 --- a/MEC030/SRV/V2X/schemas/Pc5ProvisioningInfo.schema.json +++ b/MEC030/SRV/V2X/schemas/Pc5ProvisioningInfo.schema.json @@ -6,7 +6,7 @@ "description": "The provisioning information per location as defined below.", "properties": { "dstLayer2Id": { - "description": "For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321 [i.12].\nPLMN operators coordinate to make sure Destination Layer-2 ID(s) for different V2X services are configured in a consistent manner.", + "description": "For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS136321 [i.12].\nPLMN operators coordinate to make sure Destination Layer-2 ID(s) for different V2X services are configured in a consistent manner.", "type": "string", "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "String" diff --git a/MEC030/SRV/V2X/schemas/V2XDistributionServers.schema.json b/MEC030/SRV/V2X/schemas/V2XDistributionServers.schema.json new file mode 100644 index 0000000..06233dd --- /dev/null +++ b/MEC030/SRV/V2X/schemas/V2XDistributionServers.schema.json @@ -0,0 +1,172 @@ +{ + "properties": { + "locationInfo": { + "description": "Location information to identify a particular geographical area of interest to the service consumer for receiving V2X messages.", + "items": { + "properties": { + "ecgi": { + "properties": { + "cellId": { + "properties": { + "cellId": { + "description": "E-UTRAN Cell Identity as a bit string (size (28)).", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "cellId" + ], + "type": "object", + "x-etsi-ref": "6.6.2" + }, + "plmn": { + "properties": { + "mcc": { + "description": "The Mobile Country Code part of PLMN Identity.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "mnc": { + "description": "The Mobile Network Code part of PLMN Identity.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "mcc", + "mnc" + ], + "type": "object", + "x-etsi-ref": "6.5.4" + } + }, + "required": [ + "plmn", + "cellId" + ], + "type": "object", + "x-etsi-ref": "6.5.5" + }, + "geoArea": { + "description": "Information of a geographical area.", + "properties": { + "latitude": { + "description": "Latitude (DATUM = WGS84) -90 to 90 in decimal degree format DDD.ddd", + "format": "float", + "type": "number", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Float" + }, + "longitude": { + "description": "Longitude (DATUM = WGS84) -180 to 180 in decimal degree format DDD.ddd", + "format": "float", + "type": "number", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Float" + } + }, + "required": [ + "latitude", + "longitude" + ], + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "type": "object", + "x-etsi-notes": "NOTE:\tEither ecgi or geoArea shall be present, but not both.", + "x-etsi-ref": "6.5.3" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "LocationInfo" + }, + "v2xMsgDistributionServer": { + "description": "Describes the information of the V2X Message Distribution Servers supported by the service consumer for direct communication.", + "items": { + "properties": { + "infoConnection": { + "description": "Connection information of the V2X Message Distribution Server the service consumer can use for direct connection. Shall only be included in the response.", + "properties": { + "ipAddress": { + "description": "IP address of the V2X Message Distribution Server.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "port_number": { + "description": "Port number of the V2X Message Distribution Server.", + "x-etsi-mec-cardinality'": "1", + "x-etsi-mec-origin-type'": "Integer (0..65535)", + "type": "integer" + } + }, + "required": [ + "ipAddress", + "port_number" + ], + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "infoProtocol": { + "description": "Specifics of the application layer protocol of V2X Message Distribution Server.", + "properties": { + "msgProtocol": { + "description": "Numerical value corresponding to the application layer protocol supported by the service consumer. For the msgProtocol, the following values are currently defined (see note): 0 = MQTT v3.1.0 1 = MQTT v3.1.1 2 = MQTT v5 3 = MQTT-SN 4 = AMQP 1.0", + "items": { + "enum": [ + 0, + 1, + 2, + 3, + 4 + ], + "type": "integer" + }, + "minItems": 1, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Enum" + }, + "protImplementation": { + "description": "Implementation specifics of application layer protocol, e.g. programming language.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "msgProtocol", + "protImplementation" + ], + "type": "object", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "infoProtocol" + ], + "type": "object", + "x-etsi-notes": "NOTE:\tOther application layer protocols (and versions thereof) may be added as needed.", + "x-etsi-ref": "6.5.16" + }, + "minItems": 1, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "V2xMsgDistributionServer" + } + }, + "required": [ + "v2xMsgDistributionServer" + ], + "type": "object", + "x-etsi-ref": "6.2.5" + } \ No newline at end of file -- GitLab