From d3fc569c296ad1d1e47ea41caa73ef05ce0fdd3a Mon Sep 17 00:00:00 2001 From: Elian Kraja Date: Tue, 24 Dec 2019 09:53:37 +0100 Subject: [PATCH] Fixies after MEC013 tests --- GenericKeywords.robot | 1 - SRV/RLOCLOOK/PlatRadioNodeLocation.robot | 6 +- .../schemas/AccessPointList.schema.json | 2 +- SRV/UEAREASUB/PlatUeAreaSubscription.robot | 5 +- SRV/UEDISTLOOK/PlatUeDistanceLookup.robot | 9 +- SRV/UEINFOLOOK/PlatUeInformationLookup.robot | 2 +- SRV/UEINFOLOOK/schemas/UserList.schema.json | 13 +- .../PlatUeInformationSubscription.robot | 4 +- .../jsons/ZonalTrafficSubscription.json | 4 +- .../jsons/ZonalTrafficSubscriptionError.json | 4 +- .../ZonalTrafficSubscription.schema.json | 3 +- SRV/UELOCLOOK/environment/variables.txt | 12 +- SRV/UELOCLOOK/schemas/UserInfo.schema.json | 303 +++++++++--------- SRV/UELOCLOOK/schemas/UserList.schema.json | 169 ++++++++++ 14 files changed, 365 insertions(+), 172 deletions(-) create mode 100644 SRV/UELOCLOOK/schemas/UserList.schema.json diff --git a/GenericKeywords.robot b/GenericKeywords.robot index 68eb607..90d51c5 100644 --- a/GenericKeywords.robot +++ b/GenericKeywords.robot @@ -15,7 +15,6 @@ Check HTTP Response Status Code Is Log Status code validated Check HTTP Response Body Json Schema Is - [Tags] INCLUDE_UNDEFINED_SCHEMAS [Arguments] ${input} Should Contain ${response['headers']['Content-Type']} application/json ${schema} = Catenate SEPARATOR= ${input} .schema.json diff --git a/SRV/RLOCLOOK/PlatRadioNodeLocation.robot b/SRV/RLOCLOOK/PlatRadioNodeLocation.robot index 54c282a..aaa807f 100644 --- a/SRV/RLOCLOOK/PlatRadioNodeLocation.robot +++ b/SRV/RLOCLOOK/PlatRadioNodeLocation.robot @@ -21,7 +21,7 @@ TC_MEC_SRV_RLOCLOOK_001_OK ... Reference ETSI GS MEC 013 V2.1.1, clause 7.3.7 ... OpenAPI https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/AccessPointList - [Tags] PIC_MEC_PLAT PIC_SERVICES + [Tags] PIC_MEC_PLAT PIC_SERVICES INCLUDE_UNDEFINED_SCHEMAS Get the access points list ${ZONE_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AccessPointList @@ -48,3 +48,7 @@ Get the access points list Get ${apiRoot}/${apiName}/${apiVersion}/zones/${zoneId}/accessPoints ${output}= Output response Set Suite Variable ${response} ${output} + + + + diff --git a/SRV/RLOCLOOK/schemas/AccessPointList.schema.json b/SRV/RLOCLOOK/schemas/AccessPointList.schema.json index f8b20f2..2f0fb04 100644 --- a/SRV/RLOCLOOK/schemas/AccessPointList.schema.json +++ b/SRV/RLOCLOOK/schemas/AccessPointList.schema.json @@ -8,4 +8,4 @@ "required": [ "undefinedJsonSchema" ] -} \ No newline at end of file +} diff --git a/SRV/UEAREASUB/PlatUeAreaSubscription.robot b/SRV/UEAREASUB/PlatUeAreaSubscription.robot index 979c773..1bdc1f9 100644 --- a/SRV/UEAREASUB/PlatUeAreaSubscription.robot +++ b/SRV/UEAREASUB/PlatUeAreaSubscription.robot @@ -13,7 +13,6 @@ Default Tags TC_MEC_SRV_UEAREASUB *** Test Cases *** - TC_MEC_SRV_UEAREASUB_001_OK [Documentation] ... Check that the IUT acknowledges the UE area change subscription request when @@ -22,7 +21,7 @@ TC_MEC_SRV_UEAREASUB_001_OK ... Reference ETSI GS MEC 013 V2.1.1, clause 7.3.11 ... OpenAPI # TODO check this - [Tags] PIC_MEC_PLAT PIC_SERVICES + [Tags] PIC_MEC_PLAT PIC_SERVICES INCLUDE_UNDEFINED_SCHEMAS Create new subscription CircleNotificationSubscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is CircleNotificationSubscription @@ -85,4 +84,4 @@ Remove subscription Set Headers {"Authorization":"${TOKEN}"} Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/area/circle/${subscriptionId} ${output}= Output response - Set Suite Variable ${response} ${output} \ No newline at end of file + Set Suite Variable ${response} ${output} diff --git a/SRV/UEDISTLOOK/PlatUeDistanceLookup.robot b/SRV/UEDISTLOOK/PlatUeDistanceLookup.robot index 70662aa..6cc9c8d 100644 --- a/SRV/UEDISTLOOK/PlatUeDistanceLookup.robot +++ b/SRV/UEDISTLOOK/PlatUeDistanceLookup.robot @@ -11,6 +11,9 @@ Library OperatingSystem Default Tags TC_MEC_SRV_UEDISTLOOK +*** Variables *** +${response} + *** Test Cases *** @@ -22,10 +25,12 @@ TC_MEC_SRV_UEDISTLOOK_001_OK ... Reference ETSI GS MEC 013 V2.1.1, clause 7.3.9 ... OpenAPI # TODO check this - [Tags] PIC_MEC_PLAT PIC_SERVICES + [Tags] PIC_MEC_PLAT PIC_SERVICES INCLUDE_UNDEFINED_SCHEMAS Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} Get ${apiRoot}/${apiName}/${apiVersion}/queries/distance?address=${LOC_QRY_UE_ADDRESS}&latitude=${LOC_QRY_UE_LAT}&longitude=${LOC_QRY_UE_LONG} + ${output}= Output response + Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is TerminalDistance @@ -41,4 +46,6 @@ TC_MEC_SRV_UEDISTLOOK_001_BR Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} Get ${apiRoot}/${apiName}/${apiVersion}/queries/distance?address=${LOC_QRY_UE_ADDRESS}&lat=${LOC_QRY_UE_LAT}&longitude=${LOC_QRY_UE_LONG} + ${output}= Output response + Set Suite Variable ${response} ${output} Check HTTP Response Status Code Is 400 diff --git a/SRV/UEINFOLOOK/PlatUeInformationLookup.robot b/SRV/UEINFOLOOK/PlatUeInformationLookup.robot index 4db40dc..8a5ba3f 100644 --- a/SRV/UEINFOLOOK/PlatUeInformationLookup.robot +++ b/SRV/UEINFOLOOK/PlatUeInformationLookup.robot @@ -21,7 +21,7 @@ TC_MEC_SRV_UEINFOLOOK_001_OK ... Reference ETSI GS MEC 013 V2.1.1, clause 7.3.3 ... OpenAPI https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/UserList - [Tags] PIC_MEC_PLAT PIC_SERVICES + [Tags] PIC_MEC_PLAT PIC_SERVICES INCLUDE_UNDEFINED_SCHEMAS Get list of users with filter address ${ACR_ADDRESS} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is UserList diff --git a/SRV/UEINFOLOOK/schemas/UserList.schema.json b/SRV/UEINFOLOOK/schemas/UserList.schema.json index 51f8a2e..f32b4ed 100644 --- a/SRV/UEINFOLOOK/schemas/UserList.schema.json +++ b/SRV/UEINFOLOOK/schemas/UserList.schema.json @@ -1,4 +1,7 @@ { + "type": "object", + "properties": { + "userList": { "description": "A type containing list of users.", "type": "object", "required": [ @@ -62,7 +65,7 @@ "type": "number" }, "latitude": { - "description": "Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if \"shape\" equals 7.", + "description": "Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if \"shape\" equals 7.", "items": { "type": "number" }, @@ -71,7 +74,7 @@ "x-etsi-mec-origin-type": "Float" }, "longitude": { - "description": "Location longitude, expressed in the range -180° to +180°. Cardinality greater than one only if \"shape\" equals 7.", + "description": "Location longitude, expressed in the range -180° to +180°. Cardinality greater than one only if \"shape\" equals 7.", "items": { "type": "number" }, @@ -104,7 +107,7 @@ "type": "number" }, "velocity": { - "description": "Structure with attributes relating to the target entity’s velocity, as defined in [14].", + "description": "Structure with attributes relating to the target entity’s velocity, as defined in [14].", "type": "object", "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "Structure (inlined)" @@ -166,4 +169,6 @@ "example": "http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123" } } -} \ No newline at end of file +} + } +} diff --git a/SRV/UEINFOSUB/PlatUeInformationSubscription.robot b/SRV/UEINFOSUB/PlatUeInformationSubscription.robot index 34c1014..dff29f7 100644 --- a/SRV/UEINFOSUB/PlatUeInformationSubscription.robot +++ b/SRV/UEINFOSUB/PlatUeInformationSubscription.robot @@ -25,8 +25,9 @@ TC_MEC_SRV_UEINFOSUB_001_OK Create new subscription ZonalTrafficSubscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is ZonalTrafficSubscription - Should Be Equal As Strings ${response['body']['zonalTrafficSubscription']['callbackReference']} ${ZONAL_TRAF_NOTIF_CALLBACK_URI} Should Be Equal As Strings ${response['body']['zonalTrafficSubscription']['zoneId']} ${ZONAL_TRAF_ZONE_ID} + Should Be Equal As Strings ${response['body']['zonalTrafficSubscription']['clientCorrelator']} ${ZONAL_TRAF_SUB_CLIENT_ID} + Should Be Equal As Strings ${response['body']['zonalTrafficSubscription']['callbackReference']} ${ZONAL_TRAF_NOTIF_CALLBACK_URI} TC_MEC_SRV_UEINFOSUB_001_BR @@ -86,3 +87,4 @@ Remove subscription ${output}= Output response Set Suite Variable ${response} ${output} + diff --git a/SRV/UEINFOSUB/jsons/ZonalTrafficSubscription.json b/SRV/UEINFOSUB/jsons/ZonalTrafficSubscription.json index 6e3e224..e28bd8e 100644 --- a/SRV/UEINFOSUB/jsons/ZonalTrafficSubscription.json +++ b/SRV/UEINFOSUB/jsons/ZonalTrafficSubscription.json @@ -4,8 +4,8 @@ "callbackReference": { "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, - "zoneId": "zone01", + "zoneId": "zone1", "interestRealm": "LA", "userEventCriteria": "Transferring" } -} \ No newline at end of file +} diff --git a/SRV/UEINFOSUB/jsons/ZonalTrafficSubscriptionError.json b/SRV/UEINFOSUB/jsons/ZonalTrafficSubscriptionError.json index f3cd620..fb6e6c3 100644 --- a/SRV/UEINFOSUB/jsons/ZonalTrafficSubscriptionError.json +++ b/SRV/UEINFOSUB/jsons/ZonalTrafficSubscriptionError.json @@ -4,8 +4,8 @@ "callbackReference": { "notifyURL": "http://clientApp.example.com/location_notifications/123456" }, - "zone": "zone01", + "zone": "zone1", "interestRealm": "LA", "userEventCriteria": "Transferring" } -} \ No newline at end of file +} diff --git a/SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.json b/SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.json index f8b20f2..0a27ccb 100644 --- a/SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.json +++ b/SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.json @@ -8,4 +8,5 @@ "required": [ "undefinedJsonSchema" ] -} \ No newline at end of file +} + diff --git a/SRV/UELOCLOOK/environment/variables.txt b/SRV/UELOCLOOK/environment/variables.txt index c12a3a0..940607b 100644 --- a/SRV/UELOCLOOK/environment/variables.txt +++ b/SRV/UELOCLOOK/environment/variables.txt @@ -1,16 +1,18 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 10.192.2.172 -${PORT} 8081 +${HOST} 10.30.7.120 +${PORT} 30007 ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l -${apiRoot} +${apiRoot} etsi-013 ${apiName} location ${apiVersion} v2 # Specific variables -${ZONE_ID} zone01 +${ZONE_ID} zone1 +${NON_EXISTENT_ZONE_ID} NON_EXISTENT_ZONE_ID + ${USER_ID} ue1 ${NON_EXISTENT_USER_ID} NON_EXISTENT_USER_ID -${NON_EXISTENT_ZONE_ID} NON_EXISTENT_ZONE_ID \ No newline at end of file + diff --git a/SRV/UELOCLOOK/schemas/UserInfo.schema.json b/SRV/UELOCLOOK/schemas/UserInfo.schema.json index 83c1840..d337f92 100644 --- a/SRV/UELOCLOOK/schemas/UserInfo.schema.json +++ b/SRV/UELOCLOOK/schemas/UserInfo.schema.json @@ -1,150 +1,155 @@ { - "properties": { - "accessPointId": { - "description": "The identity of the access point the user is currently on, see note 1.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" - }, - "address": { - "description": "Address of user (e.g. 'sip' URI, 'tel' URI, 'acr' URI) currently on the access point, see note 1.", - "format": "uri", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "AnyURI" - }, - "ancillaryInfo": { - "description": "Reserved for future use.", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "String" - }, - "contextLocationInfo": { - "description": "Contextual information of a user location (e.g. aisle, floor, room number, etc.).", - "type": "string", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "String" - }, - "locationInfo": { - "properties": { - "accuracy": { - "type": "number" - }, - "accuracyAltitude": { - "type": "number" - }, - "accuracySemiMinor": { - "type": "number" - }, - "altitude": { - "description": "Location altitude relative to the WGS84 ellipsoid surface.", - "type": "number", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Float" - }, - "confidence": { - "type": "number" - }, - "includedAngle": { - "type": "number" - }, - "innerRadius": { - "type": "number" - }, - "latitude": { - "description": "Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if \"shape\" equals 7.", - "items": { - "type": "number" - }, - "type": "array", - "x-etsi-mec-cardinality": "1..N", - "x-etsi-mec-origin-type": "Float" - }, - "longitude": { - "description": "Location longitude, expressed in the range -180° to +180°. Cardinality greater than one only if \"shape\" equals 7.", - "items": { - "type": "number" - }, - "type": "array", - "x-etsi-mec-cardinality": "1..N", - "x-etsi-mec-origin-type": "Float" - }, - "offsetAngle": { - "type": "number" - }, - "orientationMajorAxis": { - "type": "number" - }, - "shape": { - "description": "Shape information, as detailed in [14], associated with the reported location coordinate:\n1 = Ellipsoid_Arc\n2 = ellipsoid_Point\n3 = ellipsoid_Point_Altitude\n4 = ellipsoid_Point_Altitude_Uncert_Ellipsoid\n5 = ellipsoid_Point_Uncert_Circle\n6 = ellipsoid_Point_Uncert_Ellipse\n7 = polygon", - "enum": [ - "ELLIPSOID_ARC", - "ELLIPSOID_POINT", - "ELLIPSOID_POINT_ALTITUDE", - "ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID", - "ELLIPSOID_POINT_UNCERT_CIRCLE", - "ELLIPSOID_POINT_UNCERT_ELLIPSE", - "POLYGON" - ], - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "Enum (inlined)" - }, - "uncertaintyRadius": { - "type": "number" - }, - "velocity": { - "description": "Structure with attributes relating to the target entity’s velocity, as defined in [14].", - "type": "object", - "x-etsi-mec-cardinality": "0..1", - "x-etsi-mec-origin-type": "Structure (inlined)" - } - }, - "required": [ - "latitude", - "longitude", - "shape" - ], - "type": "object", - "x-etsi-ref": "6.5.3" - }, - "resourceURL": { - "description": "Self-referring URL, see note 1.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" - }, - "timeStamp": { - "properties": { - "nanoSeconds": { - "type": "number" - }, - "seconds": { - "type": "number" - } - }, - "required": [ - "seconds", - "nanoSeconds" - ], - "type": "object", - "x-etsi-ref": "6.5.2" - }, - "zoneId": { - "description": "The identity of the zone the user is currently within, see note 1.", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" - } - }, - "required": [ - "address", - "accessPointId", - "zoneId", - "resourceURL", - "timeStamp" - ], - "type": "object", - "x-etsi-notes": ":\tAs specified in [5], clause 5.2.2.7.\nNOTE 2: \tAs specified in [5], clause 5.2.2.5.", - "x-etsi-ref": "6.2.2" -} \ No newline at end of file + "type": "object", + "properties": { + "userInfo": { + "type": "object", + "properties": { + "accessPointId": { + "description": "The identity of the access point the user is currently on, see note 1.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "address": { + "description": "Address of user (e.g. 'sip' URI, 'tel' URI, 'acr' URI) currently on the access point, see note 1.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "AnyURI" + }, + "ancillaryInfo": { + "description": "Reserved for future use.", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "contextLocationInfo": { + "description": "Contextual information of a user location (e.g. aisle, floor, room number, etc.).", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "locationInfo": { + "properties": { + "accuracy": { + "type": "number" + }, + "accuracyAltitude": { + "type": "number" + }, + "accuracySemiMinor": { + "type": "number" + }, + "altitude": { + "description": "Location altitude relative to the WGS84 ellipsoid surface.", + "type": "number", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Float" + }, + "confidence": { + "type": "number" + }, + "includedAngle": { + "type": "number" + }, + "innerRadius": { + "type": "number" + }, + "latitude": { + "description": "Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if \"shape\" equals 7.", + "items": { + "type": "number" + }, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Float" + }, + "longitude": { + "description": "Location longitude, expressed in the range -180° to +180°. Cardinality greater than one only if \"shape\" equals 7.", + "items": { + "type": "number" + }, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Float" + }, + "offsetAngle": { + "type": "number" + }, + "orientationMajorAxis": { + "type": "number" + }, + "shape": { + "description": "Shape information, as detailed in [14], associated with the reported location coordinate:\n1 = Ellipsoid_Arc\n2 = ellipsoid_Point\n3 = ellipsoid_Point_Altitude\n4 = ellipsoid_Point_Altitude_Uncert_Ellipsoid\n5 = ellipsoid_Point_Uncert_Circle\n6 = ellipsoid_Point_Uncert_Ellipse\n7 = polygon", + "enum": [ + "ELLIPSOID_ARC", + "ELLIPSOID_POINT", + "ELLIPSOID_POINT_ALTITUDE", + "ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID", + "ELLIPSOID_POINT_UNCERT_CIRCLE", + "ELLIPSOID_POINT_UNCERT_ELLIPSE", + "POLYGON" + ], + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Enum (inlined)" + }, + "uncertaintyRadius": { + "type": "number" + }, + "velocity": { + "description": "Structure with attributes relating to the target entity’s velocity, as defined in [14].", + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "latitude", + "longitude", + "shape" + ], + "type": "object", + "x-etsi-ref": "6.5.3" + }, + "resourceURL": { + "description": "Self-referring URL, see note 1.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "timeStamp": { + "properties": { + "nanoSeconds": { + "type": "number" + }, + "seconds": { + "type": "number" + } + }, + "required": [ + "seconds", + "nanoSeconds" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + }, + "zoneId": { + "description": "The identity of the zone the user is currently within, see note 1.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "address", + "accessPointId", + "zoneId", + "resourceURL", + "timeStamp" + ], + "x-etsi-notes": ":\tAs specified in [5], clause 5.2.2.7.\nNOTE 2: \tAs specified in [5], clause 5.2.2.5.", + "x-etsi-ref": "6.2.2" + } + } +} diff --git a/SRV/UELOCLOOK/schemas/UserList.schema.json b/SRV/UELOCLOOK/schemas/UserList.schema.json new file mode 100644 index 0000000..32b692b --- /dev/null +++ b/SRV/UELOCLOOK/schemas/UserList.schema.json @@ -0,0 +1,169 @@ +{ + "description": "A type containing list of users.", + "type": "object", + "required": [ + "resourceURL" + ], + "properties": { + "user": { + "description": "Collection of the zone information list.", + "type": "array", + "items": { + "properties": { + "accessPointId": { + "description": "The identity of the access point the user is currently on, see note 1.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "address": { + "description": "Address of user (e.g. 'sip' URI, 'tel' URI, 'acr' URI) currently on the access point, see note 1.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "AnyURI" + }, + "ancillaryInfo": { + "description": "Reserved for future use.", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "contextLocationInfo": { + "description": "Contextual information of a user location (e.g. aisle, floor, room number, etc.).", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "locationInfo": { + "properties": { + "accuracy": { + "type": "number" + }, + "accuracyAltitude": { + "type": "number" + }, + "accuracySemiMinor": { + "type": "number" + }, + "altitude": { + "description": "Location altitude relative to the WGS84 ellipsoid surface.", + "type": "number", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Float" + }, + "confidence": { + "type": "number" + }, + "includedAngle": { + "type": "number" + }, + "innerRadius": { + "type": "number" + }, + "latitude": { + "description": "Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if \"shape\" equals 7.", + "items": { + "type": "number" + }, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Float" + }, + "longitude": { + "description": "Location longitude, expressed in the range -180° to +180°. Cardinality greater than one only if \"shape\" equals 7.", + "items": { + "type": "number" + }, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Float" + }, + "offsetAngle": { + "type": "number" + }, + "orientationMajorAxis": { + "type": "number" + }, + "shape": { + "description": "Shape information, as detailed in [14], associated with the reported location coordinate:\n1 = Ellipsoid_Arc\n2 = ellipsoid_Point\n3 = ellipsoid_Point_Altitude\n4 = ellipsoid_Point_Altitude_Uncert_Ellipsoid\n5 = ellipsoid_Point_Uncert_Circle\n6 = ellipsoid_Point_Uncert_Ellipse\n7 = polygon", + "enum": [ + "ELLIPSOID_ARC", + "ELLIPSOID_POINT", + "ELLIPSOID_POINT_ALTITUDE", + "ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID", + "ELLIPSOID_POINT_UNCERT_CIRCLE", + "ELLIPSOID_POINT_UNCERT_ELLIPSE", + "POLYGON" + ], + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Enum (inlined)" + }, + "uncertaintyRadius": { + "type": "number" + }, + "velocity": { + "description": "Structure with attributes relating to the target entity’s velocity, as defined in [14].", + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "latitude", + "longitude", + "shape" + ], + "type": "object", + "x-etsi-ref": "6.5.3" + }, + "resourceURL": { + "description": "Self-referring URL, see note 1.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "timeStamp": { + "properties": { + "nanoSeconds": { + "type": "number" + }, + "seconds": { + "type": "number" + } + }, + "required": [ + "seconds", + "nanoSeconds" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + }, + "zoneId": { + "description": "The identity of the zone the user is currently within, see note 1.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "address", + "accessPointId", + "zoneId", + "resourceURL", + "timeStamp" + ], + "type": "object", + "x-etsi-notes": ":\tAs specified in [5], clause 5.2.2.7.\nNOTE 2: \tAs specified in [5], clause 5.2.2.5.", + "x-etsi-ref": "6.2.2" + } + }, + "resourceURL": { + "description": "Self referring URL.", + "type": "string", + "format": "uri", + "example": "http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123" + } + } +} -- GitLab