diff --git a/GenericKeywords.robot b/GenericKeywords.robot index 68eb6075bd572d129676acc009bb72aa1bd315a4..90d51c56a049fba2fa18634d6c73f3099a5ffabb 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 54c282ab5857c15f4a3cbfdfbe2293895cef365a..aaa807f9f484935b056a1b49847056d848784858 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 f8b20f2828e1fd1b88440ada9a8a1e83b2814f7b..2f0fb04962dbf3fe8e3c01a1050e12b34e48cd34 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 979c773fe9ac2f649a950d696bf9e217e0a2ca50..1bdc1f9ef5d8d5aed4bb657664427a9d459176d3 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 70662aa599ec7c2f0b2f63324ff88febbf796bd6..6cc9c8d951ed16f6f4253799e1474d6c2eefe785 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 4db40dc7baf6d79515d99e44e2b89e8030316003..8a5ba3f085a0894334fceb54294c275e2cd60edd 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 51f8a2e0c57fcfcd40aa60782a61ac0c965889c0..f32b4edcb97d50de0eabd897156403468a6eb35c 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 34c101445226f2326634a0502e0c2182b52091cf..dff29f71416c6e01874ed7fe4cf947fe66df32fc 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 6e3e224577a4672b21a932d1cc4e6b40cb1a0cf9..e28bd8e900cd9e0472de6588e41cdb090eb0cb70 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 f3cd620151a86bd422a229ae60d6800bbe42b81b..fb6e6c3a09fddd72928a26b227cce23b2894536e 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 f8b20f2828e1fd1b88440ada9a8a1e83b2814f7b..0a27ccbd001045fedd47496ca23a1a8be79e35cb 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 c12a3a0e28afe6a526ec233b186ec69939203242..940607b06c5babe067b3efd5b9d39c61e237ac51 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 83c184066a4eff12e9554bf62fbc45b56c487df6..d337f92e794618166440bc43ceef02579cb1f78f 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 0000000000000000000000000000000000000000..32b692b0d106444ba8d009fc8be829406917387e --- /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" + } + } +}