Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
MEC - Multi-access Edge Computing
MEC Robot Test Suite
Commits
d3fc569c
Commit
d3fc569c
authored
Dec 24, 2019
by
Elian Kraja
Committed by
Michele Carignani
May 28, 2020
Browse files
Fixies after MEC013 tests
parent
bd92f138
Changes
14
Hide whitespace changes
Inline
Side-by-side
GenericKeywords.robot
View file @
d3fc569c
...
...
@@ -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
...
...
SRV/RLOCLOOK/PlatRadioNodeLocation.robot
View file @
d3fc569c
...
...
@@ -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}
SRV/RLOCLOOK/schemas/AccessPointList.schema.json
View file @
d3fc569c
...
...
@@ -8,4 +8,4 @@
"required"
:
[
"undefinedJsonSchema"
]
}
\ No newline at end of file
}
SRV/UEAREASUB/PlatUeAreaSubscription.robot
View file @
d3fc569c
...
...
@@ -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}
SRV/UEDISTLOOK/PlatUeDistanceLookup.robot
View file @
d3fc569c
...
...
@@ -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
SRV/UEINFOLOOK/PlatUeInformationLookup.robot
View file @
d3fc569c
...
...
@@ -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
...
...
SRV/UEINFOLOOK/schemas/UserList.schema.json
View file @
d3fc569c
{
"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
}
}
}
SRV/UEINFOSUB/PlatUeInformationSubscription.robot
View file @
d3fc569c
...
...
@@ -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}
SRV/UEINFOSUB/jsons/ZonalTrafficSubscription.json
View file @
d3fc569c
...
...
@@ -4,8 +4,8 @@
"callbackReference"
:
{
"notifyURL"
:
"http://clientApp.example.com/location_notifications/123456"
},
"zoneId"
:
"zone
0
1"
,
"zoneId"
:
"zone1"
,
"interestRealm"
:
"LA"
,
"userEventCriteria"
:
"Transferring"
}
}
\ No newline at end of file
}
SRV/UEINFOSUB/jsons/ZonalTrafficSubscriptionError.json
View file @
d3fc569c
...
...
@@ -4,8 +4,8 @@
"callbackReference"
:
{
"notifyURL"
:
"http://clientApp.example.com/location_notifications/123456"
},
"zone"
:
"zone
0
1"
,
"zone"
:
"zone1"
,
"interestRealm"
:
"LA"
,
"userEventCriteria"
:
"Transferring"
}
}
\ No newline at end of file
}
SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.json
View file @
d3fc569c
...
...
@@ -8,4 +8,5 @@
"required"
:
[
"undefinedJsonSchema"
]
}
\ No newline at end of file
}
SRV/UELOCLOOK/environment/variables.txt
View file @
d3fc569c
*** 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
SRV/UELOCLOOK/schemas/UserInfo.schema.json
View file @
d3fc569c
{
"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:
\n
1 = Ellipsoid_Arc
\n
2 = ellipsoid_Point
\n
3 = ellipsoid_Point_Altitude
\n
4 = ellipsoid_Point_Altitude_Uncert_Ellipsoid
\n
5 = ellipsoid_Point_Uncert_Circle
\n
6 = ellipsoid_Point_Uncert_Ellipse
\n
7 = 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 entitys 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"
:
":
\t
As specified in [5], clause 5.2.2.7.
\n
NOTE 2:
\t
As 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:
\n
1 = Ellipsoid_Arc
\n
2 = ellipsoid_Point
\n
3 = ellipsoid_Point_Altitude
\n
4 = ellipsoid_Point_Altitude_Uncert_Ellipsoid
\n
5 = ellipsoid_Point_Uncert_Circle
\n
6 = ellipsoid_Point_Uncert_Ellipse
\n
7 = 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"
:
":
\t
As specified in [5], clause 5.2.2.7.
\n
NOTE 2:
\t
As specified in [5], clause 5.2.2.5."
,
"x-etsi-ref"
:
"6.2.2"
}
}
}
SRV/UELOCLOOK/schemas/UserList.schema.json
0 → 100644
View file @
d3fc569c
{
"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"
:
{