module IoTAPI_Functions {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
import from LibCommon_Time all;
import from LibCommon_VerdictControl all;
import from LibCommon_Sync all;
// LibHttp
import from LibHttp_TypesAndValues all;
import from LibHttp_Functions all;
import from LibHttp_Templates all;
import from LibHttp_JsonTemplates all;
import from LibHttp_TestSystem all;
// LibMec/EdgePlatformApplicationEnablementAPI
import from EdgePlatformApplicationEnablementAPI_Templates all;
// LibMec/IoTAPI
import from IoTAPI_TypesAndValues all;
import from IoTAPI_Templates all;
import from IoTAPI_Pixits all;
// LibMec
import from LibMec_Templates all;
import from LibMec_Functions all;
import from LibMec_Pics all;
import from LibMec_Pixits all;
function f_create_device_info(
out DeviceInfo p_device_info
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_IOT_API_SUB,
v_headers,
m_http_message_body_json(
m_body_json_iot_device_info(
m_device_info(
PX_IOT_DEVICE_ID_1,
PX_IOT_DEVICE_AUTH_1,
false,
PX_IOT_DEVICE_SUPI_1,
PX_IOT_DEVICE_IMSI_1
))))));
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_iot_device_info(
mw_device_info(
PX_IOT_DEVICE_ID_1,
PX_IOT_DEVICE_AUTH_1,
false,
PX_IOT_DEVICE_SUPI_1,
PX_IOT_DEVICE_IMSI_1
)))))) -> value v_response {
tc_ac.stop;
p_device_info := v_response.response.body.json_body.deviceInfo_iot;
log("f_create_device_info: INFO: IUT successfully responds to the subscription: ", p_device_info);
}
[] tc_ac.timeout {
log("f_create_device_info: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_device_info
function f_delete_device_info(
in DeviceInfo p_device_info
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_IOT_API_SUB & "/" & oct2char(unichar2oct(p_device_info.deviceId, "UTF-8")),
v_headers
)));
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_204_no_content
)) {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_device_info: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_device_info
function f_create_device_info_list(
out DeviceInfoList p_device_info_list
) runs on HttpComponent {
for (var integer i := 0; i < lengthof(p_device_info_list); i := i + 1) {
f_create_device_info(p_device_info_list[i]);
}
} // End of function f_create_device_info_list
function f_delete_device_info_list(
in DeviceInfoList p_device_info_list
) runs on HttpComponent {
for (var integer i := 0; i < lengthof(p_device_info_list); i := i + 1) {
if (p_device_info_list[i].deviceId != "") {
f_delete_device_info(p_device_info_list[i]);
}
}
} // End of function f_delete_device_info_list
function f_create_iot_platform_info(
out IotPlatformInfo p_iot_platform_info
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_IOT_API_LIST_PLTF_SUB,
v_headers,
m_http_message_body_json(
m_body_json_iot_iot_platform_info(
m_iot_platform_info(
PX_IOT_PLTF_ID_1,
{
m_mb_transport_info(
PX_MB_TRANSPORTINFO_ID_1,
PX_MB_TRANSPORTINFO_NAME_1,
PX_MB_TRANSPORTINFO_TYPE_1,
PX_MB_TRANSPORTINFO_PROTOCOL_1,
PX_MB_TRANSPORTINFO_VERSION_1,
m_end_point_uris({ PX_IOT_ENDPOINT_URI_1 }),
m_security_info,
m_impl_specific_info
)
}
))))));
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_iot_iot_platform_info(
mw_iot_platform_info(
PX_IOT_PLTF_ID_1,
{
m_mb_transport_info(
PX_MB_TRANSPORTINFO_ID_1,
PX_MB_TRANSPORTINFO_NAME_1,
PX_MB_TRANSPORTINFO_TYPE_1,
PX_MB_TRANSPORTINFO_PROTOCOL_1,
PX_MB_TRANSPORTINFO_VERSION_1,
m_end_point_uris({ PX_IOT_ENDPOINT_URI_1 }),
m_security_info,
m_impl_specific_info
)
}
)))))) -> value v_response {
tc_ac.stop;
p_iot_platform_info := v_response.response.body.json_body.iotPlatformInfo;
log("f_create_iot_platform_info: INFO: IUT successfully responds to the subscription: ", p_iot_platform_info);
}
[] tc_ac.timeout {
log("f_create_iot_platform_info: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_iot_platform_info
function f_delete_iot_platform_info(
in IotPlatformInfo p_iot_platform_info
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_IOT_API_LIST_PLTF_SUB & "/" & oct2char(unichar2oct(p_iot_platform_info.iotPlatformId, "UTF-8")),
v_headers
)));
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_204_no_content
)) {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_iot_platform_info: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_iot_platform_info
function f_create_iot_platform_info_list(
out IotPlatformInfoList p_iot_platform_info_list
) runs on HttpComponent {
for (var integer i := 0; i < lengthof(p_iot_platform_info_list); i := i + 1) {
f_create_iot_platform_info(p_iot_platform_info_list[i]);
}
} // End of function f_create_iot_platform_info_list
function f_delete_iot_platform_info_list(
in IotPlatformInfoList p_iot_platform_info_list
) runs on HttpComponent {
for (var integer i := 0; i < lengthof(p_iot_platform_info_list); i := i + 1) {
if (p_iot_platform_info_list[i].iotPlatformId != "") {
f_delete_iot_platform_info(p_iot_platform_info_list[i]);
}
}
} // End of function f_delete_iot_platform_info_list
} // End of modue IoTAPI_Functions
\ No newline at end of file
module IoTAPI_Pics {
/**
* @desc Does the IUT support MEC IoT API?
*/
modulepar boolean PICS_IOT_API_SUPPORTED := true;
} // End of IoTAPI_Pics
module IoTAPI_Pixits {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
// LibMec/EdgePlatformApplicationEnablementAPI
import from EdgePlatformApplicationEnablementAPI_TypesAndValues all;
modulepar Json.String PX_IOT_DEVICE_ID_1 := "";
modulepar Json.String PX_IOT_DEVICE_SUPI_1 := "";
modulepar Json.String PX_IOT_DEVICE_IMSI_1 := "";
modulepar Json.String PX_IOT_DEVICE_AUTH_1 := "";
modulepar Json.String PX_IOT_DEVICE_ID_2 := "";
modulepar Json.String PX_IOT_DEVICE_SUPI_2 := "";
modulepar Json.String PX_IOT_DEVICE_IMSI_2 := "";
modulepar Json.String PX_IOT_DEVICE_AUTH_2 := "";
modulepar Json.String PX_IOT_DEVICE_ID_3 := "";
modulepar Json.String PX_IOT_DEVICE_SUPI_3 := "";
modulepar Json.String PX_IOT_DEVICE_IMSI_3 := "";
modulepar Json.String PX_IOT_DEVICE_AUTH_3 := "";
modulepar Json.String PX_IOT_DEVICE_ID_UNKNOWN := "";
modulepar Json.String PX_IOT_ENDPOINT_URI_1 := "";
modulepar Json.String PX_IOT_ENDPOINT_URI_2 := "";
modulepar Json.String PX_IOT_ENDPOINT_URI_3 := "";
modulepar Json.String PX_REQUESTED_PLTF_ID := "";
modulepar Json.String PX_IOT_PLTF_ID_1 := "";
modulepar Json.String PX_IOT_PLTF_ID_2 := "";
modulepar Json.String PX_IOT_PLTF_ID_3 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_ID_1 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_NAME_1 := "";
modulepar EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportType PX_MB_TRANSPORTINFO_TYPE_1
:= REST_HTTP;
modulepar Json.String PX_MB_TRANSPORTINFO_PROTOCOL_1 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_VERSION_1 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_ID_2 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_NAME_2 := "";
modulepar EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportType PX_MB_TRANSPORTINFO_TYPE_2
:= REST_HTTP;
modulepar Json.String PX_MB_TRANSPORTINFO_PROTOCOL_2 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_VERSION_2 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_ID_3 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_NAME_3 := "";
modulepar EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportType PX_MB_TRANSPORTINFO_TYPE_3
:= REST_HTTP;
modulepar Json.String PX_MB_TRANSPORTINFO_PROTOCOL_3 := "";
modulepar Json.String PX_MB_TRANSPORTINFO_VERSION_3 := "";
modulepar Json.String PX_IOT_PLTF_ID_UNKNOWN := "";
} // End of module IoTAPI_Pixits
\ No newline at end of file
module IoTAPI_Templates {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
// LibMec/LibMec_ApplicationPackageLifecycleAndOperationGrantingAPI
import from ApplicationPackageLifecycleAndOperationGrantingAPI_TypesAndValues all;
// LibMec/EdgePlatformApplicationEnablementAPI
import from EdgePlatformApplicationEnablementAPI_TypesAndValues all;
// LibMec/IoTAPI
import from IoTAPI_TypesAndValues all;
template (omit) DeviceInfo m_device_info(
in Json.String p_deviceId,
in Json.String p_deviceAuthenticationInfo,
in Json.Bool p_enabled := false,
in template (omit) Json.String p_supi := omit,
in template (omit) Json.String p_imsi := omit,
in template (omit) Json.String p_requestedIotPlatformId := omit,
in template (omit) TrafficRuleDescriptors p_requestedMecTrafficRule := omit,
in template (omit) DeviceMetatData p_deviceMetadata := omit,
in template (omit) Json.String p_gpsi := omit,
in template (omit) Json.String p_pei := omit,
in template (omit) Json.String p_msisdn := omit,
in template (omit) Json.String p_imei := omit,
in template (omit) Json.String p_iccid := omit,
in template (omit) DeviceSpecificMessageFormats p_deviceSpecificMessageFormats := omit,
in template (omit) DownlinkInfo p_downlinkInfo := omit,
in template (omit) Json.String p_clientCertificate := omit
) := {
deviceAuthenticationInfo := p_deviceAuthenticationInfo,
deviceMetadata := p_deviceMetadata,
gpsi := p_gpsi,
pei := p_pei,
supi := p_supi,
msisdn := p_msisdn,
imei := p_imei,
imsi := p_imsi,
iccid := p_iccid,
deviceId := p_deviceId,
requestedMecTrafficRule := p_requestedMecTrafficRule,
requestedIotPlatformId := p_requestedIotPlatformId,
deviceSpecificMessageFormats := p_deviceSpecificMessageFormats,
downlinkInfo := p_downlinkInfo,
clientCertificate := p_clientCertificate,
enabled := p_enabled
} // End of template m_device_info
template (present) DeviceInfo mw_device_info(
template (present) Json.String p_deviceId := ?,
template (present) Json.String p_deviceAuthenticationInfo := ?,
template (present) Json.Bool p_enabled := ?,
template Json.String p_supi := *,
template Json.String p_imsi := *,
template Json.String p_requestedIotPlatformId := *,
template TrafficRuleDescriptors p_requestedMecTrafficRule := *,
template DeviceMetatData p_deviceMetadata := *,
template Json.String p_gpsi := *,
template Json.String p_pei := *,
template Json.String p_msisdn := *,
template Json.String p_imei := *,
template Json.String p_iccid := *,
template DeviceSpecificMessageFormats p_deviceSpecificMessageFormats := *,
template DownlinkInfo p_downlinkInfo := *,
template Json.String p_clientCertificate := *
) := {
deviceAuthenticationInfo := p_deviceAuthenticationInfo,
deviceMetadata := p_deviceMetadata,
gpsi := p_gpsi,
pei := p_pei,
supi := p_supi,
msisdn := p_msisdn,
imei := p_imei,
imsi := p_imsi,
iccid := p_iccid,
deviceId := p_deviceId,
requestedMecTrafficRule := p_requestedMecTrafficRule,
requestedIotPlatformId := p_requestedIotPlatformId,
deviceSpecificMessageFormats := p_deviceSpecificMessageFormats,
downlinkInfo := p_downlinkInfo,
clientCertificate := p_clientCertificate,
enabled := p_enabled
} // End of template mw_device_info
template (omit) IotPlatformInfo m_iot_platform_info(
in Json.String p_iotPlatformId,
in template (value) MBTransportInfoList p_userTransportInfo,
in Json.Bool p_enabled := false,
in template (omit) EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportInfoList p_customServicesTransportInfo := omit
) := {
iotPlatformId := p_iotPlatformId,
userTransportInfo := p_userTransportInfo,
customServicesTransportInfo := p_customServicesTransportInfo,
enabled := p_enabled
} // End of template m_iot_platform_info
template (omit) IotPlatformInfo m_iot_platform_info_error(
in Json.String p_iotPlatformId,
in Json.Bool p_enabled := false,
in template (omit) EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportInfoList p_customServicesTransportInfo := omit
) := {
iotPlatformId := p_iotPlatformId,
userTransportInfo := omit,
customServicesTransportInfo := p_customServicesTransportInfo,
enabled := p_enabled
} // End of template m_iot_platform_info_error
template (present) IotPlatformInfo mw_iot_platform_info(
template (present) Json.String p_iotPlatformId := ?,
template (present) MBTransportInfoList p_userTransportInfo := ?,
template (present) Json.Bool p_enabled := ?,
template EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportInfoList p_customServicesTransportInfo := *
) := {
iotPlatformId := p_iotPlatformId,
userTransportInfo := p_userTransportInfo,
customServicesTransportInfo := p_customServicesTransportInfo,
enabled := p_enabled
} // End of template mw_iot_platform_info
template (omit) MBTransportInfo m_mb_transport_info(
in Json.String p_id,
in Json.String p_name,
in EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportType p_type,
in Json.String p_protocol,
in Json.String p_version,
in template (value) EdgePlatformApplicationEnablementAPI_TypesAndValues.EndPointInfo p_endpoint,
in template (value) EdgePlatformApplicationEnablementAPI_TypesAndValues.SecurityInfo p_security,
in template (value) ImplSpecificInfo p_implSpecificInfo,
in template (omit) Json.String p_description := omit
) := {
id := p_id,
name := p_name,
description := p_description,
type_ := p_type,
protocol := p_protocol,
version := p_version,
endpoint := p_endpoint,
security := p_security,
implSpecificInfo := p_implSpecificInfo
} // End of template m_mb_transport_info
template (present) MBTransportInfo mw_mb_transport_info(
template (present) Json.String p_id := ?,
template (present) Json.String p_name := ?,
template (present) EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportType p_type := ?,
template (present) Json.String p_protocol := ?,
template (present) Json.String p_version := ?,
template (present) EdgePlatformApplicationEnablementAPI_TypesAndValues.EndPointInfo p_endpoint := ?,
template (present) EdgePlatformApplicationEnablementAPI_TypesAndValues.SecurityInfo p_security := ?,
template (present) ImplSpecificInfo p_implSpecificInfo := ?,
template Json.String p_description := *
) := {
id := p_id,
name := p_name,
description := p_description,
type_ := p_type,
protocol := p_protocol,
version := p_version,
endpoint := p_endpoint,
security := p_security,
implSpecificInfo := p_implSpecificInfo
} // End of template mw_mb_transport_info
template (omit) ImplSpecificInfo m_impl_specific_info(
in template (omit) EventTopics p_eventTopics := omit,
in template (omit) UplinkTopics p_uplinkTopics := omit,
in template (omit) DownlinkTopics p_downlinkTopics := omit
) := {
eventTopics := p_eventTopics,
uplinkTopics := p_uplinkTopics,
downlinkTopics := p_downlinkTopics
} // End of template m_impl_specific_info
template ImplSpecificInfo mw_impl_specific_info(
template EventTopics p_eventTopics := *,
template UplinkTopics p_uplinkTopics := *,
template DownlinkTopics p_downlinkTopics := *
) := {
eventTopics := p_eventTopics,
uplinkTopics := p_uplinkTopics,
downlinkTopics := p_downlinkTopics
} // End of template mw_impl_specific_info
} // End of IoTAPI_Templates
/**
* @desc The ETSI MEC ISG MEC033 Radio Network Information API described using OpenAPI
* @see https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf
*/
module IoTAPI_TypesAndValues {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
// LibMec/LibMec_ApplicationPackageLifecycleAndOperationGrantingAPI
import from ApplicationPackageLifecycleAndOperationGrantingAPI_TypesAndValues all;
// LibMec/EdgePlatformApplicationEnablementAPI
import from EdgePlatformApplicationEnablementAPI_TypesAndValues all;
/**
* @desc Information associated to an IoT device
* @member deviceAuthenticationInfo Information needed for secondary authentication of the IoT device to the data network
* @member deviceMetadata Additional information about the IoT device
* @member gpsi GPSI of the IoT device if 5G-enabled
* @member pei PEI of the IoT device if 5G-enabled
* @member supi SUPI of the IoT device if 5G-enabled
* @member msisdn MSISDN of the IoT device if LTE-enabled
* @member imei IMEI of the IoT device if LTE-enabled
* @member imsi IMSI of the IoT device if LTE-enabled
* @member iccid ICCID of the IoT device
* @member deviceId Human-readable identifier of the IoT device
* @member requestedMecTrafficRule MEC traffic rules the IoT device is requested to be associated to
* @member requestedIotPlatformId IoT platform to which the IoT device is requested to be associated to
* @member deviceSpecificMessageFormats Format of the messages to be published by the MEC IoTS on the user transport provided by the associated IoT platform in case the MEC IoTS acts on behalf of the IoT device
* @member downlinkInfo Downlink communication configuration of the user transport provided by the associated IoT platform in case the MEC IoTS acts on behalf of the IoT device
* @member clientCertificate Client-side SSL/TLS certificate to be used by the MEC IoTS to interact with the user transport provided by the associated IoT platform in case the MEC IoTS acts on behalf of the IoT device
* @member enabled Indication whether the IoT device has a valid associated traffic rule (TRUE) or not (FALSE)
* @see ETSI GS MEC 033 V3.1.1 (2022-12) Table 6.2.2-1: Definition of type DeviceInfo
*/
type record DeviceInfo {
Json.String deviceAuthenticationInfo,
DeviceMetatData deviceMetadata optional,
Json.String gpsi optional,
Json.String pei optional,
Json.String supi optional,
Json.String msisdn optional,
Json.String imei optional,
Json.String imsi optional,
Json.String iccid optional,
Json.String deviceId,
TrafficRuleDescriptors requestedMecTrafficRule optional,
Json.String requestedIotPlatformId optional,
DeviceSpecificMessageFormats deviceSpecificMessageFormats optional,
DownlinkInfo downlinkInfo optional,
Json.String clientCertificate optional,
Json.Bool enabled
} // End of type DeviceInfo
type record of DeviceInfo DeviceInfoList;
type record of Json.String DeviceMetatData;
/**
* @desc
* @member eventMsgFormat Event message format configuration
* @member uplinkMsgFormat Uplink message format configuration
*/
type record DeviceSpecificMessageFormats {
EventMsg eventMsgFormat optional,
UplinkMsg uplinkMsgFormat optional
} // End of type DeviceSpecificMessageFormats
/**
* @desc Downlink communication configuration of the user transport provided by the associated IoT platform in case the MEC IoTS acts on behalf of the IoT device
* @member downlinkTopic Topic associated to the IoT device
* @member devicePort UDP port to be used by the MEC IoTS for the outgoing downlink packets towards the IoT device
*/
type record DownlinkInfo {
Json.String downlinkTopic optional,
Json.Number devicePort optional
} // End of type DownlinkInfo
/**
* @desc Information associated to a IoT platform
* @member iotPlatformId Identifier of the IoT platform
* @member userTransportInfoInformation about the user transport(s) provided by the IoT platform
* @member customServicesTransportInfo Transport enabling access to vendor-specific services provided by the IoT platform. The data
* @member enabled Indication whether the IoT platform is capable of providing user transports and vendor-specific services (TRUE) or not (FALSE)
* @see ETSI GS MEC 033 V3.1.1 (2022-12) Table 6.2.3-1: Definition of type IotPlatformInfo
*/
type record IotPlatformInfo {
Json.String iotPlatformId,
MBTransportInfoList userTransportInfo optional, // optional on;ly for the 400 Bad Request TP
TransportInfoList customServicesTransportInfo optional,
Json.Bool enabled
} // End of IotPlatformInfo
type record of IotPlatformInfo IotPlatformInfoList;
/**
* @desc User transport based on a message bus
* @member id The identifier of this transport as per ETSI GS MEC 011 [i.2]
* @member name The name of this transport as per ETSI GS MEC 011 [i.2]
* @member description Human-readable description of this transport as per ETSI GS MEC 011 [i.2]
* @member type_ Type of the transport
* @member protocol The name of the protocol used
* @member version The version of the protocol used as per ETSI GS MEC 011 [i.2]
* @member endpoint Information about the endpoint to access the transport as per ETSI GS MEC 011 [i.2]
* @member security Information about the security used by the transport as per ETSI GS MEC 011 [i.2]
* @member implSpecificInfo Additional implementation specific details of the transport
* @see ETSI GS MEC 033 V3.1.1 (2022-12) Table 6.3.2-1: Definition of type MBTransportInfo
*/
type record MBTransportInfo {
Json.String id,
Json.String name,
Json.String description optional,
EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportType type_,
Json.String protocol,
Json.String version ,
EdgePlatformApplicationEnablementAPI_TypesAndValues.EndPointInfo endpoint,
EdgePlatformApplicationEnablementAPI_TypesAndValues.SecurityInfo security,
ImplSpecificInfo implSpecificInfo
} // End of type MBTransportInfo
type record of MBTransportInfo MBTransportInfoList;
/**
* @desc
* @member eventTopics Topics used to publish events related to the established session between the IoT device(s) and the end IoT application(s) on the user transport
* @member uplinkTopics Topics used to publish data generated by the IoT device(s) on the user transport, in order to be consumed by the end IoT application(s)
* @member downlinkTopics Topics used to publish data generated by the IoT applications(s) on the user transport, in order to be consumed by the end IoT device(s)
* @see ETSI GS MEC 033 V3.1.1 (2022-12) Table 6.3.2-1: Definition of type MBTransportInfo
*/
type record ImplSpecificInfo {
EventTopics eventTopics optional,
UplinkTopics uplinkTopics optional,
DownlinkTopics downlinkTopics optional
} // End of type ImplSpecificInfo
type record of Json.String EventTopics;
type record of Json.String UplinkTopics;
type record of Json.String DownlinkTopics;
type record of EdgePlatformApplicationEnablementAPI_TypesAndValues.TransportInfo TransportInfoList;
/**
* @desc Defines the format of the messages to be published on the user transport in order to provide application-specific information about events related to the established session between the IoT device and the end IoT application(s)
* @member eventTopic Topic where the message containing application-specific information should be published
* @member selectedSerializer Type of serializer to be used for the topic as per ETSI GS MEC 011 [i.2]
* @member includeDeviceAddr Indication whether to include the IP address of the IoT device (TRUE) or not (FALSE)
* @member includeDeviceMetadata Indication whether to include the metadata about the IoT device (TRUE) or not (FALSE)
* @member includeSupi Indication whether to include the SUPI of the IoT device (TRUE) or not (FALSE)
* @member includeImsi Indication whether to include the IMSI of the IoT device (TRUE) or not (FALSE)
* @member inclueIccid Indication whether to include the ICCID of the IoT device (TRUE) or not (FALSE)
* @member includeDeviceId Indication whether to include the humanreadable identified of the IoT device (TRUE) or not (FALSE)
* @member
* @see ETSI GS MEC 033 V3.1.1 (2022-12) Table 6.3.3-1: Definition of type EventMsg
*/
type record EventMsg {
Json.String eventTopic,
EdgePlatformApplicationEnablementAPI_TypesAndValues.SerializerType selectedSerializer,
Json.Bool includeDeviceAddr optional,
Json.Bool includeDeviceMetadata optional,
Json.Bool includeSupi optional,
Json.Bool includeImsi optional,
Json.Bool includeIccid optional,
Json.Bool includeDeviceId optional
} // End ot type EventMsg
/**
* @desc Defines the format of the messages containing uplink data generated by the IoT device to be published on the user transport
* @member uplinkTopic Topic where the message containing the data generated by the IoT device(s) should be published, in order to be consumed by the end IoT application(s).
* @member selectedSerializer Type of serializer to be used for the topic as per ETSI GS MEC 011 [i.2]
* @member includeDeviceAddr Indication whether to include the IP address of the IoT device (TRUE) or not (FALSE)
* @member includeDeviceMetadata Indication whether to include the metadata about the IoT device (TRUE) or not (FALSE)
* @member includeSupi Indication whether to include the SUPI of the IoT device (TRUE) or not (FALSE)
* @member includeImsi Indication whether to include the IMSI of the IoT device (TRUE) or not (FALSE)
* @member inclueIccid Indication whether to include the ICCID of the IoT device (TRUE) or not (FALSE)
* @member includeDeviceId Indication whether to include the humanreadable identified of the IoT device (TRUE) or not (FALSE)
* @member
* @see ETSI GS MEC 033 V3.1.1 (2022-12) Table 6.3.4-1: Definition of type UplinkMsg
*/
type record UplinkMsg {
Json.String uplinkTopic,
EdgePlatformApplicationEnablementAPI_TypesAndValues.SerializerType selectedSerializer,
Json.Bool includeDeviceAddr optional,
Json.Bool includeDeviceMetadata optional,
Json.Bool includeSupi optional,
Json.Bool includeImsi optional,
Json.Bool includeIccid optional,
Json.Bool includeDeviceId optional
} // End ot type UplinkMsg
} with {
encode "JSON"
} // End of module IoTAPI_TypesAndValues
\ No newline at end of file
{
"openapi": "3.0.0",
"info": {
"contact": {
"url": "https://forge.etsi.org/rep/mec/gs013-location-api"
},
"title": "ETSI GS MEC 013 - Location API",
"version": "2.1.1",
"description": "The ETSI MEC ISG MEC013 Location API described using OpenAPI.",
"license": {
"name": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters"
}
},
"externalDocs": {
"description": "ETSI MEC013 V2.1.1 Location API",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.01.01_60/gs_mec013v020101p.pdf"
},
"servers": [
{
"url": "https://localhost/location/v2"
}
],
"tags": [
{
"name": "location"
}
],
"paths": {
"/queries/distance": {
"get": {
"tags": [
"location"
],
"summary": "UE Distance Lookup of a specific UE",
"description": "UE Distance Lookup between terminals or a terminal and a location",
"operationId": "distanceGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.Requester"
},
{
"$ref": "#/components/parameters/Query.AddressMandatory"
},
{
"$ref": "#/components/parameters/Query.Latitude"
},
{
"$ref": "#/components/parameters/Query.Longitude"
}
],
"responses": {
"200": {
"description": "Successful response to a distance request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"terminalDistance": {
"$ref": "#/components/schemas/TerminalDistance"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "queries"
}
},
"/queries/users": {
"get": {
"tags": [
"location"
],
"summary": "UE Location Lookup of a specific UE or group of UEs",
"description": "UE Location Lookup of a specific UE or group of UEs",
"operationId": "usersGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.ZoneId"
},
{
"$ref": "#/components/parameters/Query.AccessPointId"
},
{
"$ref": "#/components/parameters/Query.Address"
}
],
"responses": {
"200": {
"description": "Successful response to users request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"userList": {
"$ref": "#/components/schemas/UserList"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "queries"
}
},
"/queries/zones": {
"get": {
"tags": [
"location"
],
"summary": "Zones information Lookup",
"description": "Used to get a list of identifiers for zones authorized for use by the application.",
"operationId": "zonesGET",
"responses": {
"200": {
"description": "Successful response to zones request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zoneList": {
"$ref": "#/components/schemas/ZoneList"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "queries"
}
},
"/queries/zones/{zoneId}": {
"get": {
"tags": [
"location"
],
"summary": "Zones information Lookup",
"description": "Used to get the information for an authorized zone for use by the application.",
"operationId": "zonesGetById",
"parameters": [
{
"$ref": "#/components/parameters/Path.ZoneId"
}
],
"responses": {
"200": {
"description": "Successful response to an access point Id request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zoneInfo": {
"$ref": "#/components/schemas/ZoneInfo"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "queries"
}
},
"/queries/zones/{zoneId}/accessPoints": {
"get": {
"tags": [
"location"
],
"summary": "Radio Node Location Lookup",
"description": "Radio Node Location Lookup to retrieve a list of radio nodes associated to a zone.",
"operationId": "apGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.ZoneId"
},
{
"$ref": "#/components/parameters/Query.InterestRealm"
}
],
"responses": {
"200": {
"description": "Successful response to an access point Id request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"accessPointList": {
"$ref": "#/components/schemas/AccessPointList"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "queries"
}
},
"/queries/zones/{zoneId}/accessPoints/{accessPointId}": {
"get": {
"tags": [
"location"
],
"summary": "Radio Node Location Lookup",
"description": "Radio Node Location Lookup to retrieve a radio node associated to a zone.",
"operationId": "apByIdGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.ZoneId"
},
{
"$ref": "#/components/parameters/Path.AccessPointId"
}
],
"responses": {
"200": {
"description": "Successful response to an access point Id request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"accessPointInfo": {
"$ref": "#/components/schemas/AccessPointInfo"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "queries"
}
},
"/subscriptions/area/circle": {
"get": {
"tags": [
"location"
],
"summary": "Retrieves all active subscriptions to area change notifications",
"description": "This operation is used for retrieving all active subscriptions to area change notifications.",
"operationId": "areaCircleSubListGET",
"responses": {
"200": {
"description": "Response to retrieve area subscriptions",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"notificationSubscriptionList"
],
"properties": {
"notificationSubscriptionList": {
"$ref": "#/components/schemas/NotificationSubscriptionList"
}
},
"example": {
"notificationSubscriptionList": {
"circleNotificationSubscription": [
{
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"checkImmediate": true,
"enteringLeavingCriteria": "Entering",
"frequency": 10,
"latitude": -80.88,
"longitude": 41.277,
"radius": 500,
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/area/circle/subscription123"
}
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/area/circle"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"location"
],
"summary": "Creates a subscription for area change notification",
"description": "Creates a subscription to the Location Service for an area change notification.",
"operationId": "areaCircleSubPOST",
"requestBody": {
"description": "Subscription to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"circleNotificationSubscription": {
"$ref": "#/components/schemas/CircleNotificationSubscription"
}
},
"example": {
"circleNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"checkImmediate": true,
"enteringLeavingCriteria": "Entering",
"frequency": 10,
"latitude": -80.88,
"longitude": 41.277,
"radius": 500,
"trackingAccuracy": 10
}
}
}
}
}
},
"responses": {
"201": {
"description": "Successful subscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"circleNotificationSubscription": {
"$ref": "#/components/schemas/CircleNotificationSubscription"
}
},
"example": {
"circleNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"checkImmediate": true,
"enteringLeavingCriteria": "Entering",
"frequency": 10,
"latitude": -80.88,
"longitude": 41.277,
"radius": 500,
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/area/circle/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"callbacks": {
"notification": {
"{$request.body#/circleNotificationSubscription.callbackReference.notifyURL}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification from Location service, content based on subscription type",
"operationId": "circleNotificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"subscriptionNotification": {
"$ref": "#/components/schemas/SubscriptionNotification"
}
},
"example": {
"subscriptionNotification": {
"enteringLeavingCriteria": "Entering",
"isFinalNotification": "false,",
"link": {
"rel": "CircleNotificationSubscription",
"href": "http://meAppServer.example.com/location/v2/subscriptions/area/circle/sub123"
},
"terminalLocation": {
"address": "acr:10.0.0.1",
"currentLocation": {
"accuracy": 100,
"altitude": 1001,
"latitude": -80.86302,
"longitude": 41.277306,
"timestamp": {
"seconds": 1483231138,
"nanoSeconds\"": 0
}
},
"locationRetrievalStatus": "Retrieved"
}
}
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/area/circle/{subscriptionId}": {
"get": {
"tags": [
"location"
],
"summary": "Retrieve subscription information",
"description": "Get subscription information.",
"operationId": "areaCircleSubGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"circleNotificationSubscription"
],
"properties": {
"circleNotificationSubscription": {
"$ref": "#/components/schemas/CircleNotificationSubscription"
}
},
"example": {
"circleNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"checkImmediate": true,
"enteringLeavingCriteria": "Entering",
"frequency": 10,
"latitude": -80.88,
"longitude": 41.277,
"radius": 500,
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/area/circle/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"put": {
"tags": [
"location"
],
"summary": "Updates a subscription information",
"description": "Updates a subscription.",
"operationId": "areaCircleSubPUT",
"requestBody": {
"description": "Subscription to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"circleNotificationSubscription": {
"$ref": "#/components/schemas/CircleNotificationSubscription"
}
},
"example": {
"circleNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"checkImmediate": true,
"enteringLeavingCriteria": "Entering",
"frequency": 10,
"latitude": -80.88,
"longitude": 41.277,
"radius": 500,
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/area/circle/subscription123"
}
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"circleNotificationSubscription": {
"$ref": "#/components/schemas/CircleNotificationSubscription"
}
},
"example": {
"circleNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"checkImmediate": true,
"enteringLeavingCriteria": "Entering",
"frequency": 10,
"latitude": -80.88,
"longitude": 41.277,
"radius": 500,
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/area/circle/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"412": {
"$ref": "#/components/responses/412"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"delete": {
"tags": [
"location"
],
"summary": "Cancel a subscription",
"description": "Method to delete a subscription.",
"operationId": "areaCircleSubDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/distance": {
"get": {
"tags": [
"location"
],
"summary": "Retrieves all active subscriptions to distance change notifications",
"description": "This operation is used for retrieving all active subscriptions to a distance change notifications.",
"operationId": "distanceSubListGET",
"responses": {
"200": {
"description": "Response to retrieve area subscriptions",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"notificationSubscriptionList"
],
"properties": {
"notificationSubscriptionList": {
"$ref": "#/components/schemas/NotificationSubscriptionList"
}
},
"example": {
"notificationSubscriptionList": {
"distanceNotificationSubscription": [
{
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"monitoredAddress": [
"acr:10.0.0.1",
"acr:10.0.0.2"
],
"checkImmediate": true,
"criteria": "AllWithinDistance",
"distance": 100,
"frequency": 10,
"referenceAddress": "acr:10.0.0.3",
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/sub123"
}
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"location"
],
"summary": "Creates a subscription for distance change notification",
"description": "Creates a subscription to the Location Service for a distance change notification.",
"operationId": "distanceSubPOST",
"requestBody": {
"description": "Subscription to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"distanceNotificationSubscription": {
"$ref": "#/components/schemas/DistanceNotificationSubscription"
}
},
"example": {
"distanceNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"monitoredAddress": [
"acr:10.0.0.1",
"acr:10.0.0.2"
],
"checkImmediate": true,
"criteria": "AllWithinDistance",
"distance": 100,
"frequency": 10,
"referenceAddress": "acr:10.0.0.3",
"trackingAccuracy": 10
}
}
}
}
}
},
"responses": {
"201": {
"description": "Successful subscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"distanceNotificationSubscription": {
"$ref": "#/components/schemas/DistanceNotificationSubscription"
}
},
"example": {
"distanceNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"monitoredAddress": [
"acr:10.0.0.1",
"acr:10.0.0.2"
],
"checkImmediate": true,
"criteria": "AllWithinDistance",
"distance": 100,
"frequency": 10,
"referenceAddress": "acr:10.0.0.3",
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"callbacks": {
"notification": {
"{$request.body#/distanceNotificationSubscription.callbackReference.notifyURL}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification from Location service, content based on subscription type",
"operationId": "distanceNotificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"subscriptionNotification": {
"$ref": "#/components/schemas/SubscriptionNotification"
}
},
"example": {
"subscriptionNotification": {
"distanceCriteria": "AllWithinDistance",
"isFinalNotification": "false,",
"link": {
"rel": "DistanceNotificationSubscription",
"href": "http://meAppServer.example.com/location/v2/subscriptions/distance/sub123"
},
"terminalLocation": [
{
"address": "acr:10.0.0.1",
"currentLocation": {
"accuracy": 100,
"altitude": 1001,
"latitude": -80.86302,
"longitude": 41.277306,
"timestamp": {
"seconds": 1483231138,
"nanoSeconds\"": 0
}
},
"locationRetrievalStatus": "Retrieved"
},
{
"address": "acr:10.0.0.2",
"currentLocation": {
"accuracy": 100,
"altitude": 1001,
"latitude": -80.86301,
"longitude": 41.277306,
"timestamp": {
"seconds": 1483231138,
"nanoSeconds\"": 0
}
},
"locationRetrievalStatus": "Retrieved"
}
]
}
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/distance/{subscriptionId}": {
"get": {
"tags": [
"location"
],
"summary": "Retrieve subscription information",
"description": "Get subscription information.",
"operationId": "distanceSubGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"distanceNotificationSubscription"
],
"properties": {
"distanceNotificationSubscription": {
"$ref": "#/components/schemas/DistanceNotificationSubscription"
}
},
"example": {
"distanceNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"monitoredAddress": [
"acr:10.0.0.1",
"acr:10.0.0.2"
],
"checkImmediate": true,
"criteria": "AllWithinDistance",
"distance": 100,
"frequency": 10,
"referenceAddress": "acr:10.0.0.3",
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"put": {
"tags": [
"location"
],
"summary": "Updates a subscription information",
"description": "Updates a subscription.",
"operationId": "distanceSubPUT",
"requestBody": {
"description": "Subscription to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"distanceNotificationSubscription": {
"$ref": "#/components/schemas/DistanceNotificationSubscription"
}
},
"example": {
"distanceNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"monitoredAddress": [
"acr:10.0.0.1",
"acr:10.0.0.2"
],
"checkImmediate": true,
"criteria": "AllWithinDistance",
"distance": 100,
"frequency": 10,
"referenceAddress": "acr:10.0.0.3",
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123"
}
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"distanceNotificationSubscription": {
"$ref": "#/components/schemas/DistanceNotificationSubscription"
}
},
"example": {
"distanceNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"monitoredAddress": [
"acr:10.0.0.1",
"acr:10.0.0.2"
],
"checkImmediate": true,
"criteria": "AllWithinDistance",
"distance": 100,
"frequency": 10,
"referenceAddress": "acr:10.0.0.3",
"trackingAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"412": {
"$ref": "#/components/responses/412"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"delete": {
"tags": [
"location"
],
"summary": "Cancel a subscription",
"description": "Method to delete a subscription.",
"operationId": "distanceSubDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/periodic": {
"get": {
"tags": [
"location"
],
"summary": "Retrieves all active subscriptions to periodic notifications",
"description": "This operation is used for retrieving all active subscriptions to periodic notifications.",
"operationId": "periodicSubListGET",
"responses": {
"200": {
"description": "Response to retrieve area subscriptions",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"notificationSubscriptionList"
],
"properties": {
"notificationSubscriptionList": {
"$ref": "#/components/schemas/NotificationSubscriptionList"
}
},
"example": {
"notificationSubscriptionList": {
"periodicNotificationSubscription": [
{
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"frequency": 10,
"requestedAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123"
}
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"location"
],
"summary": "Creates a subscription for periodic notification",
"description": "Creates a subscription to the Location Service for a periodic notification.",
"operationId": "periodicSubPOST",
"requestBody": {
"description": "Subscription to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"periodicNotificationSubscription": {
"$ref": "#/components/schemas/PeriodicNotificationSubscription"
}
},
"example": {
"periodicNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"frequency": 10,
"requestedAccuracy": 10
}
}
}
}
}
},
"responses": {
"201": {
"description": "Successful subscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"periodicNotificationSubscription": {
"$ref": "#/components/schemas/PeriodicNotificationSubscription"
}
},
"example": {
"periodicNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"frequency": 10,
"requestedAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"callbacks": {
"notification": {
"{$request.body#/periodicNotificationSubscription.callbackReference.notifyURL}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification from Location service, content based on subscription type",
"operationId": "periodicNotificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"subscriptionNotification": {
"$ref": "#/components/schemas/SubscriptionNotification"
}
},
"example": {
"subscriptionNotification": {
"isFinalNotification": "false,",
"link": {
"rel": "PeriodicNotificationSubscription",
"href": "http://meAppServer.example.com/location/v2/subscriptions/periodic/sub123"
},
"terminalLocation": {
"address": "acr:10.0.0.1",
"currentLocation": {
"accuracy": 100,
"altitude": 1001,
"latitude": -80.86302,
"longitude": 41.277306,
"timestamp": {
"seconds": 1483231138,
"nanoSeconds\"": 0
}
},
"locationRetrievalStatus": "Retrieved"
}
}
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/periodic/{subscriptionId}": {
"get": {
"tags": [
"location"
],
"summary": "Retrieve subscription information",
"description": "Get subscription information.",
"operationId": "periodicSubGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"periodicNotificationSubscription"
],
"properties": {
"periodicNotificationSubscription": {
"$ref": "#/components/schemas/PeriodicNotificationSubscription"
}
},
"example": {
"periodicNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"frequency": 10,
"requestedAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"put": {
"tags": [
"location"
],
"summary": "Updates a subscription information",
"description": "Updates a subscription.",
"operationId": "periodicSubPUT",
"requestBody": {
"description": "Subscription to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"periodicNotificationSubscription": {
"$ref": "#/components/schemas/PeriodicNotificationSubscription"
}
},
"example": {
"periodicNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"frequency": 10,
"requestedAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123"
}
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"periodicNotificationSubscription": {
"$ref": "#/components/schemas/PeriodicNotificationSubscription"
}
},
"example": {
"periodicNotificationSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"callbackData": "1234",
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:10.0.0.1",
"frequency": 10,
"requestedAccuracy": 10,
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/periodic/subscription123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"412": {
"$ref": "#/components/responses/412"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"delete": {
"tags": [
"location"
],
"summary": "Cancel a subscription",
"description": "Method to delete a subscription.",
"operationId": "periodicSubDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/userTracking": {
"get": {
"tags": [
"location"
],
"summary": "Retrieves all active subscriptions to user tracking notifications",
"description": "This operation is used for retrieving all active subscriptions to user tracking notifications.",
"operationId": "userTrackingSubListGET",
"responses": {
"200": {
"description": "Response to retrieve user tracking subscriptions",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"notificationSubscriptionList"
],
"properties": {
"notificationSubscriptionList": {
"$ref": "#/components/schemas/NotificationSubscriptionList"
}
},
"example": {
"notificationSubscriptionList": {
"userTrackingSubscription": [
{
"clientCorrelator": "0123",
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/subscription123",
"callbackReference": {
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:192.0.2.1",
"userEventCriteria": [
"Transferring"
]
},
{
"clientCorrelator": "0124",
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/subscription124",
"callbackReference": {
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"address": "acr:192.0.2.2",
"userEventCriteria": [
"Transferring"
]
}
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"location"
],
"summary": "Creates a subscription for user tracking notification",
"description": "Creates a subscription to the Location Service for user tracking change notification.",
"operationId": "userTrackingSubPOST",
"requestBody": {
"description": "Subscription to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"userTrackingSubscription": {
"$ref": "#/components/schemas/UserTrackingSubscription"
}
},
"example": {
"userTrackingSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"address": "acr:10.0.0.1",
"userEventCriteria": [
"Transferring"
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Successful subscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"userTrackingSubscription": {
"$ref": "#/components/schemas/UserTrackingSubscription"
}
},
"example": {
"userTrackingSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"address": "acr:10.0.0.1",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"callbacks": {
"notification": {
"{$request.body#/userTrackingSubscription.callbackReference.notifyURL}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification from Location service, content based on subscription type",
"operationId": "userTrackingNotificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zonalPresenceNotification": {
"$ref": "#/components/schemas/ZonalPresenceNotification"
}
},
"example": {
"zonalPresenceNotification": {
"clientCorrelator": "0123",
"zoneId": "zone01",
"address": "acr:10.0.0.1",
"userEventType": "Transferring",
"currentAccessPointId": "ap2",
"previousAccessPointId": "ap1",
"timestamp": {
"seconds": 1483231138,
"nanoseconds": 0
},
"link": {
"rel": "UserTrackingSubscription",
"href": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123"
}
}
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/userTracking/{subscriptionId}": {
"get": {
"tags": [
"location"
],
"summary": "Retrieve subscription information",
"description": "Get subscription information.",
"operationId": "userTrackingSubGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"userTrackingSubscription"
],
"properties": {
"userTrackingSubscription": {
"$ref": "#/components/schemas/UserTrackingSubscription"
}
},
"example": {
"userTrackingSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"address": "acr:10.0.0.1",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"put": {
"tags": [
"location"
],
"summary": "Updates a subscription information",
"description": "Updates a subscription.",
"operationId": "userTrackingSubPUT",
"requestBody": {
"description": "Subscription to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"userTrackingSubscription": {
"$ref": "#/components/schemas/UserTrackingSubscription"
}
},
"example": {
"userTrackingSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"address": "acr:10.0.0.1",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123"
}
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"userTrackingSubscription": {
"$ref": "#/components/schemas/UserTrackingSubscription"
}
}
},
"example": {
"userTrackingSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"address": "acr:10.0.0.1",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/userTracking/sub123"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"412": {
"$ref": "#/components/responses/412"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"delete": {
"tags": [
"location"
],
"summary": "Cancel a subscription",
"description": "Method to delete a subscription.",
"operationId": "userTrackingSubDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/zonalTraffic": {
"get": {
"tags": [
"location"
],
"summary": "Retrieves all active subscriptions to zonal traffic notifications",
"description": "This operation is used for retrieving all active subscriptions to zonal traffic change notifications.",
"operationId": "zonalTrafficSubListGET",
"responses": {
"200": {
"description": "Response to retrieve zonal traffic subscriptions",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"notificationSubscriptionList"
],
"properties": {
"notificationSubscriptionList": {
"$ref": "#/components/schemas/NotificationSubscriptionList"
}
},
"example": {
"notificationSubscriptionList": {
"zonalTrafficSubscription": [
{
"clientCorrelator": "0123",
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/subscription123",
"callbackReference": {
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"zoneId": "zone01",
"userEventCriteria": [
"Transferring"
]
},
{
"clientCorrelator": "0124",
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/subscription124",
"callbackReference": {
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"zoneId": "zone02",
"userEventCriteria": [
"Transferring"
]
}
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"location"
],
"summary": "Creates a subscription for zonal traffic notification",
"description": "Creates a subscription to the Location Service for zonal traffic change notification.",
"operationId": "zonalTrafficSubPOST",
"requestBody": {
"description": "Subscription to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zonalTrafficSubscription": {
"$ref": "#/components/schemas/ZonalTrafficSubscription"
}
},
"example": {
"zonalTrafficSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"userEventCriteria": [
"Transferring"
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Successful subscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zonalTrafficSubscription": {
"$ref": "#/components/schemas/ZonalTrafficSubscription"
}
},
"example": {
"zonalTrafficSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"callbacks": {
"notification": {
"{$request.body#/zonalTrafficSubscription.callbackReference.notifyURL}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification from Location service, content based on subscription type",
"operationId": "zonalTrafficNotificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zonalPresenceNotification": {
"$ref": "#/components/schemas/ZonalPresenceNotification"
}
},
"example": {
"zonalPresenceNotification": {
"clientCorrelator": "0123",
"zoneId": "zone01",
"address": "acr:10.0.0.1",
"userEventType": "Transferring",
"currentAccessPointId": "ap2",
"previousAccessPointId": "ap1",
"timestamp": {
"seconds": 1483231138,
"nanoseconds": 0
},
"link": {
"rel": "ZonalTrafficSubscription",
"href": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123"
}
}
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/zonalTraffic/{subscriptionId}": {
"get": {
"tags": [
"location"
],
"summary": "Retrieve subscription information",
"description": "Get subscription information.",
"operationId": "zonalTrafficSubGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"zonalTrafficSubscription"
],
"properties": {
"zonalTrafficSubscription": {
"$ref": "#/components/schemas/ZonalTrafficSubscription"
}
},
"example": {
"zonalTrafficSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"put": {
"tags": [
"location"
],
"summary": "Updates a subscription information",
"description": "Updates a subscription.",
"operationId": "zonalTrafficSubPUT",
"requestBody": {
"description": "Subscription to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zonalTrafficSubscription": {
"$ref": "#/components/schemas/ZonalTrafficSubscription"
}
},
"example": {
"zonalTrafficSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123"
}
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zonalTrafficSubscription": {
"$ref": "#/components/schemas/ZonalTrafficSubscription"
}
}
},
"example": {
"zonalTrafficSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"userEventCriteria": [
"Transferring"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zonalTraffic/sub123"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"412": {
"$ref": "#/components/responses/412"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"delete": {
"tags": [
"location"
],
"summary": "Cancel a subscription",
"description": "Method to delete a subscription.",
"operationId": "zonalTrafficSubDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/zoneStatus": {
"get": {
"tags": [
"location"
],
"summary": "Retrieves all active subscriptions to zone status notifications",
"description": "This operation is used for retrieving all active subscriptions to zone status change notifications.",
"operationId": "zoneStatusSubListGET",
"responses": {
"200": {
"description": "Response to retrieve zone status subscriptions",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"notificationSubscriptionList"
],
"properties": {
"notificationSubscriptionList": {
"$ref": "#/components/schemas/NotificationSubscriptionList"
}
},
"example": {
"notificationSubscriptionList": {
"zoneStatusSubscription": [
{
"clientCorrelator": "0123",
"resourceURL": "http://example.com/exampleAPI/location/v2/subscriptions/zoneStatus/subscription123",
"callbackReference": {
"notifyURL": "http://clientApp.example.com/location_notifications/123456"
},
"zoneId": "zone01",
"numberOfUsersZoneThreshold": 500,
"operationStatus": [
"Serviceable"
]
}
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus"
}
}
}
}
}
}
}
},
"post": {
"tags": [
"location"
],
"summary": "Creates a subscription for zone status notification",
"description": "Creates a subscription to the Location Service for zone status change notification.",
"operationId": "zoneStatusSubPOST",
"requestBody": {
"description": "Subscription to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zoneStatusSubscription": {
"$ref": "#/components/schemas/ZoneStatusSubscription"
}
},
"example": {
"zoneStatusSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"numberOfUsersZoneThreshold": 500,
"operationStatus": [
"Serviceable"
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "Successful subscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zoneStatusSubscription": {
"$ref": "#/components/schemas/ZoneStatusSubscription"
}
},
"example": {
"zoneStatusSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"numberOfUsersZoneThreshold": 500,
"operationStatus": [
"Serviceable"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"callbacks": {
"notification": {
"{$request.body#/zoneStatusSubscription.callbackReference.notifyURL}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification from Location service, content based on subscription type",
"operationId": "zoneStatusNotificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zoneStatusNotification": {
"$ref": "#/components/schemas/ZoneStatusNotification"
}
},
"example": {
"zoneStatusNotification": {
"clientCorrelator": "0123",
"zoneId": "zone01",
"accessPointId": "poa1",
"operationStatus": "Serviceable",
"numberOfUsersInZone": "20",
"numberOfUsersInAP": "12",
"timestamp": {
"seconds": 1483231138,
"nanoseconds": 0
},
"link": {
"rel": "ZoneStatusSubscription",
"href": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123"
}
}
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
},
"x-swagger-router-controller": "subscriptions"
}
},
"/subscriptions/zoneStatus/{subscriptionId}": {
"get": {
"tags": [
"location"
],
"summary": "Retrieve subscription information",
"description": "Get subscription information.",
"operationId": "zoneStatusSubGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"zoneStatusSubscription"
],
"properties": {
"zoneStatusSubscription": {
"$ref": "#/components/schemas/ZoneStatusSubscription"
}
},
"example": {
"zoneStatusSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"numberOfUsersZoneThreshold": 500,
"operationStatus": [
"Serviceable"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"put": {
"tags": [
"location"
],
"summary": "Updates a subscription information",
"description": "Updates a subscription.",
"operationId": "zoneStatusSubPUT",
"requestBody": {
"description": "Subscription to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zoneStatusSubscription": {
"$ref": "#/components/schemas/ZoneStatusSubscription"
}
},
"example": {
"zoneStatusSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"numberOfUsersZoneThreshold": 500,
"operationStatus": [
"Serviceable"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123"
}
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to subscription notifications",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"zoneStatusSubscription": {
"$ref": "#/components/schemas/ZoneStatusSubscription"
}
}
},
"example": {
"zoneStatusSubscription": {
"clientCorrelator": "0123",
"callbackReference": {
"notifyURL": "http://my.callback.com/location_notifications/some-id"
},
"zoneId": "zone01",
"numberOfUsersZoneThreshold": 500,
"operationStatus": [
"Serviceable"
],
"resourceURL": "http://meAppServer.example.com/location/v2/subscriptions/zoneStatus/sub123"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"412": {
"$ref": "#/components/responses/412"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
},
"delete": {
"tags": [
"location"
],
"summary": "Cancel a subscription",
"description": "Method to delete a subscription.",
"operationId": "zoneStatusSubDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.SubscrId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"x-swagger-router-controller": "subscriptions"
}
}
},
"components": {
"responses": {
"200": {
"description": "OK"
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized : used when the client did not submit credentials.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden : operation is not allowed given the current status of the resource.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"414": {
"description": "URI Too Long : used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"example": {
"application/problem+json": {
"type": "https://meAppServer.example.com/rni/v2/probs/too-many targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
}
},
"429": {
"description": "Too Many Requests : used when a rate limiter has triggered.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"parameters": {
"Path.AccessPointId": {
"name": "accessPointId",
"in": "path",
"description": "Identifier of access Point",
"required": true,
"schema": {
"type": "string"
},
"x-exportParamName": "AccessPointId"
},
"Path.SubscrId": {
"name": "subscriptionId",
"in": "path",
"description": "Subscription Identifier, specifically the \"self\" returned in the subscription request",
"required": true,
"schema": {
"type": "string",
"format": "uri"
},
"x-exportParamName": "SubscriptionId"
},
"Path.ZoneId": {
"name": "zoneId",
"in": "path",
"description": "Indentifier of zone",
"required": true,
"schema": {
"type": "string"
},
"x-exportParamName": "ZoneId"
},
"Query.AccessPointId": {
"name": "accessPointId",
"in": "query",
"description": "Identifier of access point",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"x-exportParamName": "AccessPointId"
},
"Query.Address": {
"name": "address",
"in": "query",
"description": "address of users (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"x-exportParamName": "Address"
},
"Query.AddressMandatory": {
"name": "address",
"in": "query",
"description": "address of users (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"x-exportParamName": "AddressMandatory"
},
"Query.InterestRealm": {
"name": "interestRealm",
"in": "query",
"description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).",
"required": false,
"schema": {
"type": "string"
},
"x-exportParamName": "InterestRealm"
},
"Query.Latitude": {
"name": "latitude",
"in": "query",
"description": "Latitude geo position",
"required": false,
"schema": {
"type": "number",
"format": "float"
},
"x-exportParamName": "Latitude"
},
"Query.Longitude": {
"name": "longitude",
"in": "query",
"description": "Longitude geo position",
"required": false,
"schema": {
"type": "number",
"format": "float"
},
"x-exportParamName": "Longitude"
},
"Query.Requester": {
"name": "requester",
"in": "query",
"description": "Entity that is requesting the information",
"required": false,
"schema": {
"type": "string"
},
"x-exportParamName": "Requester"
},
"Query.ZoneId": {
"name": "zoneId",
"in": "query",
"description": "Identifier of zone",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"x-exportParamName": "ZoneId"
}
},
"schemas": {
"AccessPointInfo": {
"description": "A type containing access point information.",
"properties": {
"accessPointId": {
"description": "Identifier of access point.",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
},
"connectionType": {
"$ref": "#/components/schemas/ConnectionType"
},
"interestRealm": {
"description": "Interest realm of access point.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"locationInfo": {
"$ref": "#/components/schemas/LocationInfo"
},
"numberOfUsers": {
"description": "Number of users currently on the access point.",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "integer"
},
"operationStatus": {
"$ref": "#/components/schemas/OperationStatus"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"timezone": {
"description": "Time zone of access point.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "dateTimeStamp"
}
},
"required": [
"accessPointId",
"connectionType",
"operationStatus",
"numberOfUsers",
"resourceURL"
],
"type": "object"
},
"AccessPointList": {
"description": "A type containing list of access points.",
"properties": {
"accessPoint": {
"description": "Collection of the access point information list.",
"items": {
"$ref": "#/components/schemas/AccessPointInfo"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "AccessPointInfo"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"zoneId": {
"description": "Identifier of zone",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
}
},
"required": [
"zoneId",
"resourceURL"
],
"type": "object"
},
"CallbackReference": {
"properties": {
"callbackData": {
"description": "Data the application can register with the server when subscribing to notifications, and that are passed back unchanged in each of the related notifications. These data can be used by the application in the processing of the notification, e.g. for correlation purposes.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"notificationFormat": {
"$ref": "#/components/schemas/NotificationFormat"
},
"notifyURL": {
"description": "Notify Callback URL",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "anyURI"
}
},
"required": [
"notifyURL"
],
"type": "object"
},
"CircleNotificationSubscription": {
"description": "A type containing data for notifications, when the area is defined as a circle.",
"properties": {
"address": {
"description": "Address of terminals to monitor (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
"items": {
"type": "string"
},
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "anyURI"
},
"callbackReference": {
"$ref": "#/components/schemas/CallbackReference"
},
"checkImmediate": {
"description": "Check location immediately after establishing notification.",
"type": "boolean",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "boolean"
},
"clientCorrelator": {
"description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"count": {
"description": "Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "int"
},
"duration": {
"description": "Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "int"
},
"enteringLeavingCriteria": {
"$ref": "#/components/schemas/EnteringLeavingCriteria"
},
"frequency": {
"description": "Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications).",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "int"
},
"latitude": {
"description": "Latitude of center point.",
"format": "float",
"type": "number",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "float"
},
"link": {
"description": "Link to other resources that are in relationship with the resource.",
"items": {
"$ref": "#/components/schemas/Link"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Link"
},
"longitude": {
"description": "Longitude of center point.",
"format": "float",
"type": "number",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "float"
},
"radius": {
"description": "Radius circle around center point in meters.",
"format": "float",
"type": "number",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "float"
},
"requester": {
"description": "Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"trackingAccuracy": {
"description": "Number of meters of acceptable error in tracking distance.",
"format": "float",
"type": "number",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "float"
}
},
"required": [
"callbackReference",
"address",
"latitude",
"longitude",
"radius",
"trackingAccuracy",
"enteringLeavingCriteria",
"checkImmediate",
"frequency"
],
"type": "object"
},
"ConnectionType": {
"description": "The connection type for the access point",
"enum": [
"Femto",
"LTE-femto",
"Smallcell",
"LTE-smallcell",
"Wifi",
"Pico",
"Micro",
"Macro",
"Wimax",
"Unknown"
],
"type": "string"
},
"DistanceCriteria": {
"enum": [
"AllWithinDistance",
"AnyWithinDistance",
"AllBeyondDistance",
"AnyBeyondDistance"
],
"type": "string"
},
"DistanceNotificationSubscription": {
"description": "A type containing data for distance subscription, with reference to other devices.",
"properties": {
"callbackReference": {
"$ref": "#/components/schemas/CallbackReference"
},
"checkImmediate": {
"description": "Check location immediately after establishing notification.",
"type": "boolean",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "boolean"
},
"clientCorrelator": {
"description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"count": {
"description": "Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "int"
},
"criteria": {
"$ref": "#/components/schemas/DistanceCriteria"
},
"distance": {
"description": "Distance between devices that shall be monitored.",
"format": "float",
"type": "number",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "float"
},
"duration": {
"description": "Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "int"
},
"frequency": {
"description": "Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications).",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "int"
},
"link": {
"description": "Link to other resources that are in relationship with the resource.",
"items": {
"$ref": "#/components/schemas/Link"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Link"
},
"monitoredAddress": {
"description": "Contains addresses of devices to monitor (e.g., 'sip' URI, 'tel' URI, 'acr' URI)",
"items": {
"type": "string"
},
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "anyURI"
},
"referenceAddress": {
"description": "Indicates address of each device that will be used as reference devices from which the distances towards monitored devices indicated in the Addresses will be monitored (e.g., 'sip' URI, 'tel' URI, 'acr' URI)",
"items": {
"type": "string"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "anyURI"
},
"requester": {
"description": "Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"trackingAccuracy": {
"description": "Number of meters of acceptable error in tracking distance.",
"format": "float",
"type": "number",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "float"
}
},
"required": [
"callbackReference",
"monitoredAddress",
"distance",
"trackingAccuracy",
"criteria",
"checkImmediate",
"frequency"
],
"type": "object"
},
"EnteringLeavingCriteria": {
"enum": [
"Entering",
"Leaving"
],
"type": "string"
},
"Link": {
"description": "Link to other resources",
"properties": {
"href": {
"description": "URI",
"format": "anyURI",
"type": "string"
},
"rel": {
"description": "Describes the relationship between the URI and the resource.",
"type": "string"
}
},
"required": [
"rel",
"href"
],
"type": "object"
},
"LocationInfo": {
"properties": {
"accuracy": {
"description": "Horizontal accuracy / (semi-major) uncertainty of location provided in meters, as defined in [14]. Present only if \"shape\" equals 4, 5 or 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"accuracyAltitude": {
"description": "Altitude accuracy / uncertainty of location provided in meters, as defined in [14]. Present only if \"shape\" equals 3 or 4",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"accuracySemiMinor": {
"description": "Horizontal accuracy / (semi-major) uncertainty of location provided in meters, as defined in [14]. Present only if \"shape\" equals 4, 5 or 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"altitude": {
"description": "Location altitude relative to the WGS84 ellipsoid surface.",
"format": "float",
"type": "number",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Float"
},
"confidence": {
"description": "Confidence by which the position of a target entity is known to be within the shape description, expressed as a percentage and defined in [14]. Present only if \"shape\" equals 1, 4 or 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"includedAngle": {
"description": "Present only if \"shape\" equals 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"innerRadius": {
"description": "Present only if \"shape\" equals 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"latitude": {
"description": "Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if \"shape\" equals 7.",
"items": {
"format": "float",
"type": "number"
},
"minItems": 1,
"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": {
"format": "float",
"type": "number"
},
"minItems": 1,
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "Float"
},
"offsetAngle": {
"description": "Present only if \"shape\" equals 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"orientationMajorAxis": {
"description": "Angle of orientation of the major axis, expressed in the range 0° to 180°, as defined in [14]. Present only if \"shape\" equals 4 or 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"shape": {
"description": "Shape information, as detailed in [14], associated with the reported location coordinate: <p>1 = ELLIPSOID_ARC <p>2 = ELLIPSOID_POINT <p>3 = ELLIPSOID_POINT_ALTITUDE <p>4 = ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID <p>5 = ELLIPSOID_POINT_UNCERT_CIRCLE <p>6 = ELLIPSOID_POINT_UNCERT_ELLIPSE <p>7 = POLYGON",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Enum_inlined"
},
"timestamp": {
"$ref": "#/components/schemas/TimeStamp"
},
"uncertaintyRadius": {
"description": "Present only if \"shape\" equals 6",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"velocity": {
"description": "Structure with attributes relating to the target entity’s velocity, as defined in [14].",
"properties": {
"bearing": {
"description": "Bearing, expressed in the range 0° to 360°, as defined in [14].",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"horizontalSpeed": {
"description": "Horizontal speed, expressed in km/h and defined in [14].",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"uncertainty": {
"description": "Horizontal uncertainty, as defined in [14]. Present only if \"velocityType\" equals 3 or 4",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
},
"velocityType": {
"description": "Velocity information, as detailed in [14], associated with the reported location coordinate: <p>1 = HORIZONTAL <p>2 = HORIZONTAL_VERTICAL <p>3 = HORIZONTAL_UNCERT <p>4 = HORIZONTAL_VERTICAL_UNCERT",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Enum_inlined"
},
"verticalSpeed": {
"description": "Vertical speed, expressed in km/h and defined in [14]. Present only if \"velocityType\" equals 2 or 4",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Int"
},
"verticalUncertainty": {
"description": "Vertical uncertainty, as defined in [14]. Present only if \"velocityType\" equals 4",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "UnsignedInt"
}
},
"required": [
"velocityType",
"bearing",
"horizontalSpeed"
],
"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"
},
"NotificationFormat": {
"enum": [
"XML",
"JSON"
],
"type": "string"
},
"NotificationSubscriptionList": {
"properties": {
"circleNotificationSubscription": {
"description": "Collection of CircleNotificationSubscription elements, see note 2.",
"items": {
"$ref": "#/components/schemas/CircleNotificationSubscription"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0.. N",
"x-etsi-mec-origin-type": "CircleNotificationSubscription"
},
"distanceNotificationSubscription": {
"description": "Collection of DistanceNotificationSubscription elements, see note 2.",
"items": {
"$ref": "#/components/schemas/DistanceNotificationSubscription"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0.. N",
"x-etsi-mec-origin-type": "DistanceNotificationSubscription"
},
"periodicNotificationSubscription": {
"description": "Collection of PeriodicNotificationSubscription elements, see note 2.",
"items": {
"$ref": "#/components/schemas/PeriodicNotificationSubscription"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0.. N",
"x-etsi-mec-origin-type": "PeriodicNotificationSubscription"
},
"resourceURL": {
"description": "Self-referring URL, see note 1.",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "AnyURI"
},
"userTrackingSubscription": {
"description": "Collection of UserTrackingSubscription elements, see note 1.",
"items": {
"$ref": "#/components/schemas/UserTrackingSubscription"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0.. N",
"x-etsi-mec-origin-type": "UserTrackingSubscription"
},
"zonalTrafficSubscription": {
"description": "Collection of ZonalTrafficSubscription elements, see note 1.",
"items": {
"$ref": "#/components/schemas/ZonalTrafficSubscription"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0.. N",
"x-etsi-mec-origin-type": "ZonalTrafficSubscription"
},
"zoneStatusSubscription": {
"description": "Collection of ZoneStatusSubscription elements, see note 1.",
"items": {
"$ref": "#/components/schemas/ZoneStatusSubscription"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0.. N",
"x-etsi-mec-origin-type": "ZoneStatusSubscription"
}
},
"required": [
"resourceURL"
],
"type": "object",
"x-etsi-notes": "NOTE 1:\tAs specified in [5], clause 5.2.2.8.\nNOTE 2: \tAs specified in [6], clause 5.2.2.7.",
"x-etsi-ref": "6.3.3"
},
"OperationStatus": {
"enum": [
"Serviceable",
"Unserviceable",
"Unknown"
],
"type": "string"
},
"PeriodicNotificationSubscription": {
"description": "A type containing data for periodic subscription.",
"properties": {
"address": {
"description": "Address of terminals to monitor (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
"items": {
"type": "string"
},
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "anyURI"
},
"callbackReference": {
"$ref": "#/components/schemas/CallbackReference"
},
"clientCorrelator": {
"description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"duration": {
"description": "Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "int"
},
"frequency": {
"description": "Maximum frequency (in seconds) of notifications (can also be considered minimum time between notifications) per subscription.",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "int"
},
"link": {
"description": "Link to other resources that are in relationship with the resource.",
"items": {
"$ref": "#/components/schemas/Link"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Link"
},
"requestedAccuracy": {
"description": "Accuracy of the provided distance in meters.",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "int"
},
"requester": {
"description": "Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
}
},
"required": [
"callbackReference",
"address",
"requestedAccuracy",
"frequency"
],
"type": "object"
},
"ProblemDetails": {
"properties": {
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "URI"
},
"status": {
"description": "The HTTP status code for this occurrence of the problem",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"title": {
"description": "A short, human-readable summary of the problem type",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"type": {
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "URI"
}
},
"type": "object"
},
"RetrievalStatus": {
"enum": [
"Retrieved",
"NotRetrieved",
"Error"
],
"type": "string"
},
"ServiceError": {
"description": "used to indicate a notification termination or cancellation.",
"properties": {
"messageId": {
"description": "Message identifier, either with prefix SVC or with prefix POL",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
},
"text": {
"description": "Message text, with replacement variables marked with %n, where n is an index into the list of <variables> elements, starting at 1",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
},
"variables": {
"description": "Variables to substitute into text string",
"items": {
"type": "string"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "string"
}
},
"required": [
"messageId",
"text"
],
"type": "object"
},
"SubscriptionCancellationNotification": {
"description": "A type containing the subscription cancellation notification.",
"properties": {
"address": {
"description": "Address of terminal if the error applies to an individual terminal.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"callbackData": {
"description": "CallbackData if passed by the application in the receiptRequest element during the associated subscription operation",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"link": {
"description": "Link to other resources that are in relationship with the resource.",
"items": {
"$ref": "#/components/schemas/Link"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Link"
},
"reason": {
"$ref": "#/components/schemas/ServiceError"
}
},
"required": [
"terminalLocation"
],
"type": "object"
},
"SubscriptionNotification": {
"description": "A type containing the notification subscription.",
"properties": {
"callbackData": {
"description": "CallbackData if passed by the application in the receiptRequest element during the associated subscription operation",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"distanceCriteria": {
"$ref": "#/components/schemas/DistanceCriteria"
},
"enteringLeavingCriteria": {
"$ref": "#/components/schemas/EnteringLeavingCriteria"
},
"isFinalNotification": {
"description": "Set to true if it is a final notification about location change.",
"type": "boolean",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "boolean"
},
"link": {
"description": "Link to other resources that are in relationship with the resource.",
"items": {
"$ref": "#/components/schemas/Link"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Link"
},
"terminalLocation": {
"description": "Collection of the terminal locations.",
"items": {
"$ref": "#/components/schemas/TerminalLocation"
},
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "TerminalLocation"
}
},
"required": [
"terminalLocation"
],
"type": "object"
},
"TerminalDistance": {
"description": "A type containing information about the distance from a terminal to a location or between two terminals, in addition the accuracy and a timestamp of the information are provided.",
"properties": {
"accuracy": {
"description": "Accuracy of the provided distance in meters",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "integer"
},
"distance": {
"description": "Distance from terminal to a location or between two terminals specified in meters",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "integer"
},
"timestamp": {
"$ref": "#/components/schemas/TimeStamp"
}
},
"required": [
"distance"
],
"type": "object"
},
"TerminalLocation": {
"description": "A type containing device address, retrieval status and location information.",
"properties": {
"address": {
"description": "Address of the terminal to which the location information applies (e.g., 'sip' URI, 'tel' URI, 'acr' URI).",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"currentLocation": {
"$ref": "#/components/schemas/LocationInfo"
},
"errorInformation": {
"$ref": "#/components/schemas/ServiceError"
},
"locationRetrievalStatus": {
"$ref": "#/components/schemas/RetrievalStatus"
}
},
"required": [
"address",
"locationRetrievalStatus"
],
"type": "object"
},
"TerminalLocationList": {
"description": "Collection of the terminal locations.",
"items": {
"$ref": "#/components/schemas/TerminalLocation"
},
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "TerminalLocation"
},
"TimeStamp": {
"properties": {
"nanoSeconds": {
"description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"seconds": {
"description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
}
},
"required": [
"seconds",
"nanoSeconds"
],
"type": "object",
"x-etsi-ref": "6.5.2"
},
"UserEventType": {
"enum": [
"Entering",
"Leaving",
"Transferring"
],
"type": "string"
},
"UserInfo": {
"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": {
"$ref": "#/components/schemas/LocationInfo"
},
"resourceURL": {
"description": "Self-referring URL, see note 1.",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"timestamp": {
"$ref": "#/components/schemas/TimeStamp"
},
"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": "NOTE 1:\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"
},
"UserList": {
"description": "A type containing list of users.",
"properties": {
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"user": {
"description": "Collection of the zone information list.",
"items": {
"$ref": "#/components/schemas/UserInfo"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "UserInfo"
}
},
"required": [
"resourceURL"
],
"type": "object"
},
"UserTrackingSubscription": {
"description": "A type containing user tracking subscription.",
"properties": {
"address": {
"description": "Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI) to monitor",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"callbackReference": {
"$ref": "#/components/schemas/CallbackReference"
},
"clientCorrelator": {
"description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"userEventCriteria": {
"description": "List of user event values to generate notifications for (these apply to address specified). If this element is missing, a notification is requested to be generated for any change in user event.",
"items": {
"$ref": "#/components/schemas/UserEventType"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "UserEventType"
}
},
"required": [
"callbackReference",
"address"
],
"type": "object"
},
"ZonalPresenceNotification": {
"description": "A type containing zonal presence notification",
"properties": {
"address": {
"description": "Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI) to monitor",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"callbackData": {
"description": "CallBackData if passed by the application during the associated ZonalTrafficSubscription and UserTrackingSubscription operation. See [REST_NetAPI_Common].",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"currentAccessPointId": {
"description": "Identifier of access point.",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
},
"interestRealm": {
"description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"link": {
"description": "Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification",
"items": {
"$ref": "#/components/schemas/Link"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Link"
},
"previousAccessPointId": {
"description": "Identifier of access point.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"timestamp": {
"$ref": "#/components/schemas/TimeStamp"
},
"userEventType": {
"$ref": "#/components/schemas/UserEventType"
},
"zoneId": {
"description": "Identifier of zone",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
}
},
"required": [
"zoneId",
"address",
"userEventType",
"currentAccessPointId",
"timestamp"
],
"type": "object"
},
"ZonalTrafficSubscription": {
"description": "A type containing zonal traffic subscription",
"properties": {
"callbackReference": {
"$ref": "#/components/schemas/CallbackReference"
},
"clientCorrelator": {
"description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"duration": {
"description": "Period (in seconds) of time notifications are provided for. If set to \"0\" (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications. This element MAY be given by the client during resource creation in order to signal the desired lifetime of the subscription. The server MUST return in this element the period of time for which the subscription will still be valid.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "unsignedInt"
},
"interestRealm": {
"description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).",
"items": {
"type": "string"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "string"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"userEventCriteria": {
"description": "List of user event values to generate notifications for (these apply to zone identifier or all interest realms within zone identifier specified). If this element is missing, a notification is requested to be generated for any change in user event.",
"items": {
"$ref": "#/components/schemas/UserEventType"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "UserEventType"
},
"zoneId": {
"description": "Identifier of zone",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
}
},
"required": [
"callbackReference",
"zoneId"
],
"type": "object"
},
"ZoneInfo": {
"description": "A type containing zone information.",
"properties": {
"numberOfAccessPoints": {
"description": "The number of access points within the zone",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "unsignedInt"
},
"numberOfUnserviceableAccessPoints": {
"description": "Number of inoperable access points within the zone.",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "unsignedInt"
},
"numberOfUsers": {
"description": "The number of users currently on the access point.",
"type": "integer",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "unsignedInt"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"zoneId": {
"description": "Identifier of zone",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
}
},
"required": [
"zoneId",
"numberOfAccessPoints",
"numberOfUnserviceableAccessPoints",
"numberOfUsers",
"resourceURL"
],
"type": "object"
},
"ZoneList": {
"description": "A type containing a list of zones.",
"properties": {
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "anyURI"
},
"zone": {
"description": "Collection of the zone information list.",
"items": {
"$ref": "#/components/schemas/ZoneInfo"
},
"type": "array"
}
},
"required": [
"resourceURL"
],
"type": "object"
},
"ZoneStatusNotification": {
"description": "A type containing zone status notification.",
"properties": {
"accessPointId": {
"description": "Identifier of an access point.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"callbackData": {
"description": "CallBackData if passed by the application during the associated ZoneStatusSubscription operation. See [REST_NetAPI_Common].",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"link": {
"description": "Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification",
"items": {
"$ref": "#/components/schemas/Link"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Link"
},
"numberOfUsersInAP": {
"description": "This element shall be present when ZoneStatusSubscription includes numberOfUsersAPThreshold element and the number of users in an access point exceeds the threshold defined in the subscription.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "unsignedInt"
},
"numberOfUsersInZone": {
"description": "This element shall be present when ZoneStatusSubscription includes numberOfUsersZoneThreshold element and the number of users in a zone exceeds the threshold defined in this subscription.",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "unsignedInt"
},
"operationStatus": {
"$ref": "#/components/schemas/OperationStatus"
},
"timestamp": {
"$ref": "#/components/schemas/TimeStamp"
},
"zoneId": {
"description": "Identifier of zone",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
}
},
"required": [
"zoneId",
"timestamp"
],
"type": "object"
},
"ZoneStatusSubscription": {
"description": "A type containing zone status subscription.",
"properties": {
"callbackReference": {
"$ref": "#/components/schemas/CallbackReference"
},
"clientCorrelator": {
"description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
},
"numberOfUsersAPThreshold": {
"description": "Threshold number of users in an access point which if crossed shall cause a notification",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "unsignedInt"
},
"numberOfUsersZoneThreshold": {
"description": "Threshold number of users in a zone which if crossed shall cause a notification",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "unsignedInt"
},
"operationStatus": {
"description": "List of operation status values to generate notifications for (these apply to all access points within a zone).",
"items": {
"$ref": "#/components/schemas/OperationStatus"
},
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "OperationStatus"
},
"resourceURL": {
"description": "Self referring URL",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "anyURI"
},
"zoneId": {
"description": "Identifier of zone",
"type": "string",
"x-etsi-mec-cardinality": 1,
"x-etsi-mec-origin-type": "string"
}
},
"required": [
"callbackReference",
"zoneId"
],
"type": "object"
}
}
}
}
......@@ -37,8 +37,10 @@ module LocationAPI_Functions {
import from LibMec_Pics all;
import from LibMec_Pixits all;
function f_create_user_tracking_subscription(
out UserTrackingSubscription p_user_tracking_subscription
function f_create_user_location_event_subscription(
out UserLocationEventNotification p_user_location_event_notification,
out charstring p_subscription_id,
in Address p_address := PX_USER
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
......@@ -47,14 +49,13 @@ module LocationAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_ME_APP_Q_USERS_LOC_SUB_URI,
PICS_ROOT_API & PX_LOC_API_USERS_SUB_URI,
v_headers,
m_http_message_body_json(
m_body_json_user_tracking_subscription(
m_user_tracking_subscription(
PX_CLIENT_ID,
m_body_json_user_location_event_subscription(
m_user_location_event_subscription(
PX_CALLBACK_REF_URL,
PX_USER
p_address
))))));
tc_ac.start;
alt {
......@@ -62,40 +63,42 @@ module LocationAPI_Functions {
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_user_tracking_subscription(
mw_user_tracking_subscription(
PX_CLIENT_ID,
PX_CALLBACK_REF_URL,
PX_USER
mw_body_json_user_location_event_notification(
mw_user_location_event_notification(
p_address
)))))) -> value v_response {
tc_ac.stop;
p_user_tracking_subscription := v_response.response.body.json_body.userTrackingSubscription;
log("f_create_user_tracking_subscription: INFO: IUT successfully responds to the subscription: ", p_user_tracking_subscription);
// Extract HTTP Location header
var charstring_list v_subscription_id;
f_get_header(v_response.response.header, "Location", v_subscription_id);
// Extract HTTP subssription id
p_subscription_id := regexp(
v_subscription_id[0],
"?+" & PX_LOC_API_USERS_SUB_URI & "/(?*)",
0
);
p_user_location_event_notification := v_response.response.body.json_body.userLocationEventNotification;
log("f_create_user_location_event_subscription: INFO: IUT successfully responds to the subscription: ", p_user_location_event_notification);
log("f_create_user_location_event_subscription: INFO: p_subscription_id: ", p_subscription_id);
}
[] tc_ac.timeout {
log("f_create_user_tracking_subscription: INCONC: Expected message not received");
log("f_create_user_location_event_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_user_tracking_subscription
} // End of function f_create_user_location_event_subscription
function f_delete_user_tracking_subscription(
in UserTrackingSubscription p_user_tracking_subscription
function f_delete_user_location_event_subscription(
in charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
var charstring v_uri :=regexp(
oct2char(unichar2oct(p_user_tracking_subscription.resourceURL)),
"?+" & PX_ME_APP_Q_USERS_LOC_SUB_URI & "/(?*)",
0
);
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_ME_APP_Q_USERS_LOC_SUB_URI & "/" & v_uri,
PICS_ROOT_API & PX_LOC_API_USERS_SUB_URI & "/" & p_subscription_id,
v_headers
)));
tc_ac.start;
......@@ -107,14 +110,15 @@ module LocationAPI_Functions {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_user_tracking_subscription: INCONC: Expected message not received");
log("f_delete_user_location_event_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_user_tracking_subscription
} // End of function f_delete_user_location_event_subscription
function f_create_periodic_notification_subscription(
out PeriodicNotificationSubscription p_periodic_notification_subscription
function f_create_user_location_periodic_subscription(
out UserLocationPeriodicNotification p_user_location_periodic_notification,
out charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
......@@ -123,15 +127,12 @@ module LocationAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_ME_APP_Q_USERS_TRACK_SUB_URI,
PICS_ROOT_API & PX_LOC_API_USERS_SUB_URI,
v_headers,
m_http_message_body_json(
m_body_json_periodic_notification_subscription(
m_periodic_notification_subscription(
{ PX_IP_ADDRESS },
PX_CALLBACK_REF_URL,
-, -,
PX_USER
m_body_json_user_location_periodic_subscription(
m_user_location_periodic_subscription(
PX_CALLBACK_REF_URL
))))));
tc_ac.start;
alt {
......@@ -139,42 +140,42 @@ module LocationAPI_Functions {
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_periodic_notification_subscription(
mw_periodic_notification_subscription(
{ PX_IP_ADDRESS },
PX_CALLBACK_REF_URL,
-, -,
PX_USER,
?
mw_body_json_user_location_periodic_notification(
mw_user_location_periodic_notification(
PX_CALLBACK_REF_URL
)))))) -> value v_response {
tc_ac.stop;
p_periodic_notification_subscription := v_response.response.body.json_body.periodicNotificationSubscription;
log("f_create_periodic_notification_subscription: INFO: IUT successfully responds to the subscription: ", p_periodic_notification_subscription);
// Extract HTTP Location header
var charstring_list v_subscription_id;
f_get_header(v_response.response.header, "Location", v_subscription_id);
// Extract HTTP subssription id
p_subscription_id := regexp(
v_subscription_id[0],
"?+" & PX_LOC_API_USERS_SUB_URI & "/(?*)",
0
);
p_user_location_periodic_notification := v_response.response.body.json_body.userLocationPeriodicNotification;
log("f_create_user_location_periodic_subscription: INFO: IUT successfully responds to the subscription: ", p_user_location_periodic_notification);
log("f_create_user_location_periodic_subscription: INFO: p_subscription_id: ", p_subscription_id);
}
[] tc_ac.timeout {
log("f_create_periodic_notification_subscription: INCONC: Expected message not received");
log("f_create_user_location_periodic_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_periodic_notification_subscription
} // End of function f_create_user_location_periodic_subscription
function f_delete_periodic_notification_subscription(
in PeriodicNotificationSubscription p_position_notification_subscription
function f_delete_user_location_periodic_subscription(
in charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
var charstring v_uri := regexp(
oct2char(unichar2oct(p_position_notification_subscription.resourceURL)),
"?+" & PX_ME_APP_Q_USERS_TRACK_SUB_URI & "/(?*)",
0
);
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_ME_APP_Q_USERS_TRACK_SUB_URI & "/" & v_uri,
PICS_ROOT_API & PX_LOC_API_USERS_SUB_URI & "/" & p_subscription_id,
v_headers
)));
tc_ac.start;
......@@ -186,13 +187,15 @@ module LocationAPI_Functions {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_periodic_notification_subscription: INCONC: Expected message not received");
log("f_delete_user_location_periodic_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_periodic_notification_subscription
} // End of function f_delete_user_location_periodic_subscription
function f_create_zonal_traffic_subscription(
out ZonalTrafficSubscription p_zonal_traffic_subscription
function f_create_zone_location_event_subscription(
out ZoneLocationEventNotification p_zone_location_event_notification,
out charstring p_subscription_id,
in Address p_user := PX_USER
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
......@@ -201,13 +204,13 @@ module LocationAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_ME_APP_Q_USERS_INF_SUB_URI,
PICS_ROOT_API & PX_LOC_API_ZONES_SUB_URI,
v_headers,
m_http_message_body_json(
m_body_json_zonal_traffic_subscription(
m_zonal_traffic_subscription(
PX_CLIENT_ID,
m_body_json_zone_location_event_subscription(
m_zone_location_event_subscription(
PX_CALLBACK_REF_URL,
p_user,
PX_ZONE_ID
))))));
tc_ac.start;
......@@ -216,40 +219,43 @@ module LocationAPI_Functions {
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_zonal_traffic_subscription(
mw_zonal_traffic_subscription(
PX_CLIENT_ID,
PX_CALLBACK_REF_URL,
PX_ZONE_ID
mw_body_json_zone_location_event_notification(
mw_zone_location_event_notification(
// FIXME
)))))) -> value v_response {
tc_ac.stop;
p_zonal_traffic_subscription := v_response.response.body.json_body.zonalTrafficSubscription;
log("f_create_zonal_traffic_subscription: INFO: IUT successfully responds to the subscription: ", p_zonal_traffic_subscription);
// Extract HTTP Location header
var charstring_list v_subscription_id;
f_get_header(v_response.response.header, "Location", v_subscription_id);
// Extract HTTP subssription id
p_subscription_id := regexp(
v_subscription_id[0],
"?+" & PX_LOC_API_ZONES_SUB_URI & "/(?*)",
0
);
p_zone_location_event_notification := v_response.response.body.json_body.zoneLocationEventNotification;
log("f_create_zone_location_event_subscription: INFO: IUT successfully responds to the subscription: ", p_zone_location_event_notification);
log("f_create_zone_location_event_subscription: INFO: p_subscription_id: ", p_subscription_id);
}
[] tc_ac.timeout {
log("f_create_zonal_traffic_subscription: INCONC: Expected message not received");
log("f_create_zone_location_event_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_zonal_traffic_subscription
} // End of function f_create_zone_location_event_subscription
function f_delete_zonal_traffic_subscription(
in ZonalTrafficSubscription p_zonal_traffic_subscription
function f_delete_zone_location_event_subscription(
in charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
var charstring v_uri := regexp(
oct2char(unichar2oct(p_zonal_traffic_subscription.resourceURL)),
"?+" & PX_ME_APP_Q_USERS_INF_SUB_URI & "/(?*)",
0
);
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_ME_APP_Q_USERS_INF_SUB_URI & "/" & v_uri,
PICS_ROOT_API & PX_LOC_API_ZONES_SUB_URI & "/" & p_subscription_id,
v_headers
)));
tc_ac.start;
......@@ -261,13 +267,17 @@ module LocationAPI_Functions {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_zonal_traffic_subscription: INCONC: Expected message not received");
log("f_delete_zone_location_event_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_zonal_traffic_subscription
function f_create_circle_notification_subscription(
out CircleNotificationSubscription p_circle_notification_subscription
} // End of function f_delete_zone_location_event_subscription
function f_create_zone_status_subscription(
out ZoneStatusNotification p_zone_status_notification,
out charstring p_subscription_id,
in template (omit) OperationStatus p_operationStatus := Serviceable,
in template (omit) Json.UInteger p_upper_num_user_threshold := omit,
in template (omit) Json.UInteger p_lower_num_user_threshold := omit
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
......@@ -276,14 +286,18 @@ module LocationAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_ME_APP_Q_AREA_SUB_URI,
PICS_ROOT_API & PX_LOC_API_ZONES_SUB_URI,
v_headers,
m_http_message_body_json(
m_body_json_circle_notification_subscription(
m_circle_notification_subscription(
PX_CLIENT_ID, //clientCorrelator
PX_AREA_SUB_CALLBACK_URI, // callbackReference
{ PX_IP_ADDRESS } // address
m_body_json_zone_status_subscription(
m_zone_status_subscription(
PX_AREA_SUB_CALLBACK_URI,
-,
PX_ZONE_ID,
-, -, -, -, -,
p_upper_num_user_threshold,
p_lower_num_user_threshold,
p_operationStatus
))))));
tc_ac.start;
alt {
......@@ -291,38 +305,44 @@ module LocationAPI_Functions {
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_circle_notification_subscription(
mw_circle_notification_subscription(
PX_CLIENT_ID
mw_body_json_zone_status_notification(
mw_zone_status_notification(
-, -,
p_operationStatus,
-,
PX_ZONE_ID
)))))) -> value v_response {
tc_ac.stop;
p_circle_notification_subscription := v_response.response.body.json_body.circleNotificationSubscription;
log("f_create_circle_notification_subscription: INFO: IUT successfully responds to the subscription: ", p_circle_notification_subscription);
}
// Extract HTTP Location header
var charstring_list v_subscription_id;
f_get_header(v_response.response.header, "Location", v_subscription_id);
// Extract HTTP subssription id
p_subscription_id := regexp(
v_subscription_id[0],
"?+" & PX_LOC_API_ZONES_SUB_URI & "/(?*)",
0
);
p_zone_status_notification := v_response.response.body.json_body.zoneStatusNotification;
log("f_create_zone_status_subscription: INFO: IUT successfully responds to the subscription: ", p_zone_status_notification);
log("f_create_zone_status_subscription: INFO: p_subscription_id: ", p_subscription_id); }
[] tc_ac.timeout {
log("f_create_circle_notification_subscription: INCONC: Expected message not received");
log("f_create_zone_status_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_circle_notification_subscription
} // End of function f_create_zone_status_subscription
function f_delete_circle_notification_subscription(
in CircleNotificationSubscription p_circle_notification_subscription
function f_delete_zone_status_subscription(
in charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
var charstring v_uri := regexp(
oct2char(unichar2oct(p_circle_notification_subscription.resourceURL)),
"?+" & PX_ME_APP_Q_AREA_SUB_URI & "/(?*)",
0
);
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_ME_APP_Q_AREA_SUB_URI & "/" & v_uri,
PICS_ROOT_API & PX_LOC_API_ZONES_SUB_URI & "/" & p_subscription_id,
v_headers
)));
tc_ac.start;
......@@ -334,23 +354,97 @@ module LocationAPI_Functions {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_circle_notification_subscription: INCONC: Expected message not received");
log("f_delete_zone_status_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_circle_notification_subscription
} // End of function f_delete_zone_status_subscription
function f_create_user_area_subscription(
out UserAreaNotification p_user_area_notification,
out charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_LOC_API_AREA_SUB_URI,
v_headers,
m_http_message_body_json(
m_body_json_user_area_subscription(
m_user_area_subscription(
PX_UE_DIST_SUB_CALLBACK_URI, // callbackReference
PX_USER,
m_area_info(
ELLIPSOID_POINT_UNCERT_CIRCLE,
{ m_point({PX_UE_COORD_LAT}, {PX_UE_COORD_LONG}) },
PX_RADIUS
), // AreaInfo
PX_TRACKIMNG_ACCURACY // TrackingAccuracy
))))));
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_user_area_notification(
mw_user_area_notification(
// FIXME PX_UE_DIST_SUB_CALLBACK_URI
)))))) -> value v_response {
tc_ac.stop;
// Extract HTTP Location header
var charstring_list v_subscription_id;
f_get_header(v_response.response.header, "Location", v_subscription_id);
// Extract HTTP subssription id
p_subscription_id := regexp(
v_subscription_id[0],
"?+" & PX_LOC_API_USERS_SUB_URI & "/(?*)",
0
);
p_user_area_notification := v_response.response.body.json_body.userAreaNotification;
log("f_create_user_area_subscription: INFO: IUT successfully responds to the subscription: ", p_user_area_notification);
log("f_create_user_area_subscription: INFO: p_subscription_id: ", p_subscription_id);
}
[] tc_ac.timeout {
log("f_create_user_area_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_user_area_subscription
function f_delete_user_area_subscription(
in charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_LOC_API_AREA_SUB_URI & "/" & p_subscription_id,
v_headers
)));
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_204_no_content
)) {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_user_area_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_user_area_subscription
function f_create_distance_notification_subscription(
out DistanceNotificationSubscription p_distance_notification_subscription
function f_create_user_distance_subscription(
out UserDistanceNotification p_user_distance_notification,
out charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
......@@ -359,18 +453,16 @@ module LocationAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_post(
PICS_ROOT_API & PX_ME_APP_Q_DIST_URI,
PICS_ROOT_API & PX_LOC_API_DISTANCE_SUB_URI,
v_headers,
m_http_message_body_json(
m_body_json_distance_notification_subscription(
m_distance_notification_subscription(
m_body_json_user_distance_subscription(
m_user_distance_subscription(
PX_UE_DIST_SUB_CALLBACK_URI, // callbackReference
-, // checkImmediate
PX_CLIENT_ID, //clientCorrelator
-, // criteria
10.0, // distance
-,
{ PX_UE_MONITORED_IP_ADDRESS } // monitoredAddress
PX_USER,
{ PX_UE_MONITORED_IP_ADDRESS },
PX_DISTANCE,
PX_TRACKIMNG_ACCURACY
))))));
tc_ac.start;
alt {
......@@ -378,42 +470,42 @@ module LocationAPI_Functions {
mw_http_response(
mw_http_response_201_created(
mw_http_message_body_json(
mw_body_json_distance_notification_subscription(
mw_distance_notification_subscription(
PX_UE_DIST_SUB_CALLBACK_URI, // callbackReference
-,
PX_CLIENT_ID, //clientCorrelator
-, -, -,
{ PX_UE_MONITORED_IP_ADDRESS } // monitoredAddress
mw_body_json_user_distance_notification(
mw_user_distance_notification(
// FIXME PX_UE_DIST_SUB_CALLBACK_URI
)))))) -> value v_response {
tc_ac.stop;
p_distance_notification_subscription := v_response.response.body.json_body.distanceNotificationSubscription;
log("f_create_distance_notification_subscription: INFO: IUT successfully responds to the subscription: ", p_distance_notification_subscription);
// Extract HTTP Location header
var charstring_list v_subscription_id;
f_get_header(v_response.response.header, "Location", v_subscription_id);
// Extract HTTP subssription id
p_subscription_id := regexp(
v_subscription_id[0],
"?+" & PX_LOC_API_DISTANCE_SUB_URI & "/(?*)",
0
);
p_user_distance_notification := v_response.response.body.json_body.userDistanceNotification;
log("f_create_user_distance_subscription: INFO: IUT successfully responds to the subscription: ", p_user_distance_notification);
log("f_create_user_distance_subscription: INFO: p_subscription_id: ", p_subscription_id);
}
[] tc_ac.timeout {
log("f_create_distance_notification_subscription: INCONC: Expected message not received");
log("f_create_user_distance_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_create_distance_notification_subscription
} // End of function f_create_user_distance_subscription
function f_delete_distance_notification_subscription(
in DistanceNotificationSubscription p_distance_notification_subscription
function f_delete_user_distance_subscription(
charstring p_subscription_id
) runs on HttpComponent {
var Headers v_headers;
var HttpMessage v_response;
var charstring v_uri := regexp(
oct2char(unichar2oct(p_distance_notification_subscription.resourceURL)),
"?+" & PX_ME_APP_Q_DIST_URI & "/(?*)",
0
);
f_init_default_headers_list(-, -, v_headers);
httpPort.send(
m_http_request(
m_http_request_delete(
PICS_ROOT_API & PX_ME_APP_Q_DIST_URI & "/" & v_uri,
PICS_ROOT_API & PX_LOC_API_DISTANCE_SUB_URI & "/" & p_subscription_id,
v_headers
)));
tc_ac.start;
......@@ -425,9 +517,9 @@ module LocationAPI_Functions {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_distance_notification_subscription: INCONC: Expected message not received");
log("f_delete_user_distance_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_distance_notification_subscription
} // End of function f_delete_user_distance_subscription
} // End of module LocationAPI_Functions
......@@ -11,6 +11,8 @@ module LocationAPI_Pixits {
modulepar Address PX_USER := "ue1";
modulepar Address PX_USER_2 := "ue2";
modulepar Address PX_USER_UNKNOWN := "acr:192.168.5.1.1";
modulepar ClientCorrelator PX_CLIENT_ID := "0123";
......@@ -25,9 +27,11 @@ module LocationAPI_Pixits {
modulepar ZoneId PX_ZONE_ID := "zone1";
modulepar ZoneId PX_ZONE_ID_1 := "zone2";
modulepar ZoneId PX_NON_EXISTENT_ZONE_ID := "zone51";
modulepar ResourceURL PX_RESOURCE_URL := "http://meep-loc-serv/etsi-013/location/v2/users/ue1";
modulepar ResourceURL PX_RESOURCE_URL := "http://meep-loc-serv/etsi-013/location/v3/users/ue1";
modulepar NumberOfAccessPoints PX_NB_ACCESS_POINTS := 3;
......@@ -35,15 +39,19 @@ module LocationAPI_Pixits {
modulepar UInt32 PX_NB_USERS := 10;
modulepar CallbackReference PX_CALLBACK_REF_URL := { notifyURL := "http://clientApp.example.com/location_notifications/123456", callbackData := omit, notificationFormat := omit };
modulepar CallbackReference PX_CALLBACK_REF_URL := "http://clientApp.example.com/location_notifications/123456";
modulepar CallbackReference PX_UE_PERIODIC_SUB_CALLBACK_URI := { notifyURL := "http://clientApp.example.com/location_notifications/123456", callbackData := omit, notificationFormat := omit };
modulepar CallbackReference PX_UE_PERIODIC_SUB_CALLBACK_URI := "http://clientApp.example.com/location_notifications/123456";
modulepar Address PX_IP_ADDRESS := "acr:10.0.0.3";
modulepar CallbackReference PX_AREA_SUB_CALLBACK_URI := { notifyURL := "http://clientApp.example.com/location_notifications/123456", callbackData := omit, notificationFormat := omit };
modulepar Address PX_IP_ADDRESS_1 := "acr:10.0.0.10";
modulepar CallbackReference PX_AREA_SUB_CALLBACK_URI := "http://clientApp.example.com/location_notifications/123456";
modulepar CallbackReference PX_UE_DIST_SUB_CALLBACK_URI := { notifyURL := "http://clientApp.example.com/location_notifications/123456", callbackData := omit, notificationFormat := omit };
modulepar CallbackReference PX_UE_DIST_SUB_CALLBACK_URI := "http://clientApp.example.com/location_notifications/123456";
modulepar CallbackReference PX_UE_NEW_SUB_CALLBACK_URI := "http://clientApp.example.com/new_location_notifications/123456";
modulepar Address PX_UE_MONITORED_IP_ADDRESS := "acr:10.0.0.1";
......@@ -51,16 +59,28 @@ module LocationAPI_Pixits {
modulepar Address PX_UE_ZONAL_TRAF_SUB_URI := "";
modulepar Json.AnyURI PX_UE_LOC_QRY_URI := "/location/v2/queries/distance";
modulepar Json.AnyURI PX_UE_LOC_QRY_URI := "/location/v3/queries/distance";
modulepar Json.Number PX_UE_COORD_LAT := -80.86302;
modulepar Json.Number PX_UE_COORD_LONG := 41.277306;
modulepar Json.Number PX_DISTANCE := 1000.0;
modulepar Json.UInteger PX_RADIUS := 500;
modulepar Json.Number PX_TRACKIMNG_ACCURACY := 1000.0;
modulepar Address PX_ACR_SOME_IP := "";
modulepar CallbackReference PX_USERTRACK_SUB_CALLBACK_URI := { "" };
modulepar CallbackReference PX_USERTRACK_SUB_CALLBACK_URI := "";
modulepar CallbackReference PX_TRAFFIC_SUB_CALLBACK_URI := "";
modulepar float PX_NOTIF_EXPIRY := 60.0;
modulepar Json.UInteger PX_UPPER_NUM_USER_THRESHOLD := 10;
modulepar CallbackReference PX_TRAFFIC_SUB_CALLBACK_URI := { "" };
modulepar Json.UInteger PX_LOWER_NUM_USER_THRESHOLD := 1;
} // End of module LocationAPI_Pixits
......@@ -6,6 +6,9 @@ module LocationAPI_Templates {
// LibCommon
import from LibCommon_BasicTypesAndValues all;
// LibMec
import from LibMec_TypesAndValues all;
// LibMec/LocationAPI
import from LocationAPI_TypesAndValues all;
import from LocationAPI_Pixits all;
......@@ -20,9 +23,10 @@ module LocationAPI_Templates {
address_ := p_address,
accessPointId := p_access_point_id,
zoneId := p_zone_id,
timestamp_ := p_timestamp,
resourceURL := p_resource_url,
timestamp_ := p_timestamp,
locationInfo := omit,
civicInfo := omit,
contextLocationInfo := omit,
ancillaryInfo := omit
} // End of template m_user_info
......@@ -37,9 +41,10 @@ module LocationAPI_Templates {
address_ := p_address,
accessPointId := p_access_point_id,
zoneId := p_zone_id,
timestamp_ := p_timestamp,
resourceURL := p_resource_url,
timestamp_ := p_timestamp,
locationInfo := *,
civicInfo := *,
contextLocationInfo := *,
ancillaryInfo := *
} // End of template mw_user_info
......@@ -143,7 +148,7 @@ module LocationAPI_Templates {
resourceURL := p_resourceURL
} // End of template m_access_point_list
template AccessPointList mw_access_point_list(
template (present) AccessPointList mw_access_point_list(
template (present) ZoneId p_zoneId := ?,
template (present) ResourceURL p_resourceURL := ?,
template AccessPointInfos p_accessPoint := *
......@@ -153,256 +158,697 @@ module LocationAPI_Templates {
resourceURL := p_resourceURL
} // End of template mw_access_point_list
template (value) UserTrackingSubscription m_user_tracking_subscription(
in ClientCorrelator p_clientCorrelator,
template (omit) AccessPointInfo m_access_point_info(
in AccessPointId p_accessPointId,
in ConnectionType p_connectionType,
in OperationStatus p_operationStatus,
in NumberOfUsers p_numberOfUsers,
in template (value) ResourceURL p_resourceURL,
in template (omit) LocationInfo p_locationInfo := omit,
in template (omit) InterestRealm p_interestRealm := omit,
in template (omit) DateTimeStamp p_timezone := omit
) := {
accessPointId := p_accessPointId,
locationInfo := p_locationInfo,
connectionType := p_connectionType,
operationStatus := p_operationStatus,
numberOfUsers := p_numberOfUsers,
interestRealm := p_interestRealm,
timezone := p_timezone,
resourceURL := p_resourceURL
} // End of template m_access_point_info
template (present) AccessPointInfo mw_access_point_info(
template (present) AccessPointId p_accessPointId := ?,
template (present) ConnectionType p_connectionType := ?,
template (present) OperationStatus p_operationStatus := ?,
template (present) NumberOfUsers p_numberOfUsers := ?,
template (present) ResourceURL p_resourceURL := ?,
template LocationInfo p_locationInfo := *,
template InterestRealm p_interestRealm := *,
template DateTimeStamp p_timezone := *
) := {
accessPointId := p_accessPointId,
locationInfo := p_locationInfo,
connectionType := p_connectionType,
operationStatus := p_operationStatus,
numberOfUsers := p_numberOfUsers,
interestRealm := p_interestRealm,
timezone := p_timezone,
resourceURL := p_resourceURL
} // End of template mw_access_point_info
template (omit) Subscription m_subscription(
in Json.String p_subscriptionType,
in template (omit) Json.AnyURI p_href := omit
) := {
href := p_href,
subscriptionType := p_subscriptionType
} // End of template m_subscription
template (present) Subscription mw_subscription(
template (present) Json.String p_subscriptionType := ?,
template Json.AnyURI p_href := *
) := {
href := p_href,
subscriptionType := p_subscriptionType
} // End of template mw_subscription
template (omit) NotificationSubscriptionList m_notification_subscription_list(
in template (value) ResourceURL p_resourceURL,
in template (omit) Subscriptions p_subscription := omit
) := {
subscription := p_subscription,
resourceURL := p_resourceURL
} // End of template m_notification_subscription_list
template (present) NotificationSubscriptionList mw_notification_subscription_list(
template (present) ResourceURL p_resourceURL := ?,
template Subscriptions p_subscription := *
) := {
subscription := p_subscription,
resourceURL := p_resourceURL
} // End of template mw_notification_subscription_list
template (omit) UserAreaNotification m_user_area_notification(
in template (value) Address p_address_,
in template (value) LocationEventType p_userLocationEvent,
in template (value) Links p_links_,
in template (omit) TimeStamp p_timeStamp := omit,
in template (omit) LocationInfo p_locationInfo := omit,
in template (omit) CivicAddress p_civicInfo := omit,
in template (omit) RelativeLocationInfo p_relativeLocationInfo := omit
) :={
notificationType := "UserAreaNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
locationInfo := p_locationInfo,
civicInfo := p_civicInfo,
relativeLocationInfo := p_relativeLocationInfo,
userLocationEvent := p_userLocationEvent,
links_ := p_links_
} // End of template m_user_area_notification
template (present) UserAreaNotification mw_user_area_notification(
template (present) Address p_address_ := ?,
template (present) LocationEventType p_userLocationEvent := ?,
template (present) Links p_links_ := ?,
template TimeStamp p_timeStamp := *,
template LocationInfo p_locationInfo := *,
template CivicAddress p_civicInfo := *,
template RelativeLocationInfo p_relativeLocationInfo := *
) :={
notificationType := "UserAreaNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
locationInfo := p_locationInfo,
civicInfo := p_civicInfo,
relativeLocationInfo := p_relativeLocationInfo,
userLocationEvent := p_userLocationEvent,
links_ := p_links_
} // End of template mw_user_area_notification
template (omit) UserLocationEventSubscription m_user_location_event_subscription(
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in UserEventCriteria p_userEventCriteria := { Entering }
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) UserEventPara p_userEventPara := omit,
in template (omit) LocationEventCriteria p_locationEventCriteria := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "UserLocationEventSubscription",
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
address_ := p_address,
userEventPara := p_userEventPara,
locationEventCriteria := p_locationEventCriteria,
expiryDeadline := p_expiryDeadline
} // End of template m_user_location_event_subscription
template (omit) UserLocationEventSubscription m_user_location_event_subscription_error(
in Address p_address := PX_USER,
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) UserEventPara p_userEventPara := omit,
in template (omit) LocationEventCriteria p_locationEventCriteria := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "UserLocationEventSubscription",
clientCorrelator := p_clientCorrelator,
callbackReference := omit,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
address_ := p_address,
userEventCriteria := p_userEventCriteria,
resourceURL := omit
} // End of template m_user_tracking_subscription
userEventPara := p_userEventPara,
locationEventCriteria := p_locationEventCriteria,
expiryDeadline := p_expiryDeadline
} // End of template m_user_location_event_subscription_error
template (present) UserTrackingSubscription mw_user_tracking_subscription(
template (present) ClientCorrelator p_clientCorrelator := ?,
template (present) UserLocationEventSubscription mw_user_location_event_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Address p_address := PX_USER,
template (present) UserEventCriteria p_userEventCriteria := { Entering },
template (present) ResourceURL p_resourceURL := ?
template (present) Address p_address := ?,
template (present) Links p_links_ := ?,
template ClientCorrelator p_clientCorrelator := *,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template UserEventPara p_userEventPara := *,
template LocationEventCriteria p_locationEventCriteria := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "UserLocationEventSubscription",
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := p_links_,
address_ := p_address,
userEventCriteria := p_userEventCriteria,
resourceURL := p_resourceURL
} // End of template mw_user_tracking_subscription
userEventPara := p_userEventPara,
locationEventCriteria := p_locationEventCriteria,
expiryDeadline := p_expiryDeadline
} // End of template mw_user_location_event_subscription
template (value) PeriodicTrackingSubscription m_periodic_tracking_subscription(
in ClientCorrelator p_clientCorrelator,
template (omit) UserLocationPeriodicSubscription m_user_location_periodic_subscription(
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in Json.Number p_frequency := 10.0,
in Json.Number p_requestedAccuracy := 10.0
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) PeriodicEventInfo p_periodicEventInfo := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "UserLocationPeriodicSubscription",
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
address_ := p_address,
frequency := p_frequency,
requestedAccuracy := p_requestedAccuracy,
resourceURL := omit
} // End of template m_periodic_tracking_subscription
periodicEventInfo := p_periodicEventInfo,
expiryDeadline := p_expiryDeadline
} // End of template m_user_location_periodic_subscription
template (present) PeriodicTrackingSubscription mw_periodic_tracking_subscription(
template (present) ClientCorrelator p_clientCorrelator := ?,
template (present) UserLocationPeriodicSubscription mw_user_location_periodic_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Address p_address := PX_USER,
template (present) Json.Number p_frequency := ?,
template (present) Json.Number p_requestedAccuracy := ?
template (present) Address p_address := ?,
template (present) Links p_links_ := ?,
template ClientCorrelator p_clientCorrelator := *,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template PeriodicEventInfo p_periodicEventInfo := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "UserLocationPeriodicSubscription",
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
address_ := p_address,
frequency := p_frequency,
requestedAccuracy := p_requestedAccuracy,
resourceURL := *
} // End of template mw_periodic_tracking_subscription
template (value) ZonalTrafficSubscription m_zonal_traffic_subscription(
in ClientCorrelator p_client_correlator,
in CallbackReference p_callback_reference,
in ZoneId p_zone_id,
in UserEventCriteria p_user_event_criteria := { Entering }
) := {
clientCorrelator := p_client_correlator,
callbackReference := p_callback_reference,
zoneId := p_zone_id,
interestRealm := omit,
userEventCriteria := p_user_event_criteria,
duration := omit,
resourceURL := omit
} // End of template m_zonal_traffic_subscription
template (present) ZonalTrafficSubscription mw_zonal_traffic_subscription(
template (present) ClientCorrelator p_client_correlator := ?,
template (present) CallbackReference p_callback_reference := ?,
template (present) ZoneId p_zone_id := ?
) := {
clientCorrelator := p_client_correlator,
callbackReference := p_callback_reference,
zoneId := p_zone_id,
interestRealm := *,
userEventCriteria := *,
duration := *,
resourceURL := *
} // End of template mw_zonal_traffic_subscription
periodicEventInfo := p_periodicEventInfo,
expiryDeadline := p_expiryDeadline
} // End of template mw_user_location_periodic_subscription
template (omit) CircleNotificationSubscription m_circle_notification_subscription(
template (omit) ZoneLocationEventSubscription m_zone_location_event_subscription(
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in ZoneId p_zoneId,
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (value) CallbackReference p_callbackReference,
in template (value) Addresses p_address,
in template (value) Json.Number p_latitude := PX_UE_COORD_LAT,
in template (value) Json.Number p_longitude := PX_UE_COORD_LONG,
in template (value) Json.Number p_radius := 200.0,
in template (value) Json.Number p_trackingAccuracy := 10.0,
in template (value) EnteringLeavingCriteria p_enteringLeavingCriteria := Entering,
in template (value) Json.Bool p_checkImmediate := true,
in template (value) UInt32 p_frequency := 10,
in template (omit) ResourceURL p_resourceURL := omit
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) LocationEventCriteria p_locationEventCriteria := omit,
in template (omit) ReportingCtrl p_reportingCtrl := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
address_ := p_address,
callbackReference := p_callbackReference,
checkImmediate := p_checkImmediate,
subscriptionType := "ZoneLocationEventSubscription",
clientCorrelator := p_clientCorrelator,
count := omit,
duration := omit,
enteringLeavingCriteria := p_enteringLeavingCriteria,
frequency := p_frequency,
latitude := p_latitude,
link := omit,
longitude := p_longitude,
radius := p_radius,
requester := omit,
resourceURL := p_resourceURL,
trackingAccuracy := p_trackingAccuracy
} // End of template m_circle_notification_subscription
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
zoneId := p_zoneId,
locationEventCriteria := p_locationEventCriteria,
reportingCtrl := p_reportingCtrl,
expiryDeadline := p_expiryDeadline
} // End of template m_zone_location_event_subscription
template CircleNotificationSubscription mw_circle_notification_subscription(
template ClientCorrelator p_clientCorrelator := *,
template (present) ZoneLocationEventSubscription mw_zone_location_event_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Addresses p_address := ?,
template (present) Json.Number p_latitude := ?,
template (present) Json.Number p_longitude := ?,
template (present) Json.Number p_radius := ?,
template (present) Json.Number p_trackingAccuracy := ?,
template (present) EnteringLeavingCriteria p_enteringLeavingCriteria := ?,
template (present) Json.Bool p_checkImmediate := ?,
template (present) UInt32 p_frequency := ?,
template ResourceURL p_resourceURL := *
template (present) Address p_address := ?,
template (present) ZoneId p_zoneId := ?,
template (present) Links p_links_ := ?,
template ClientCorrelator p_clientCorrelator := *,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template LocationEventCriteria p_locationEventCriteria := *,
template ReportingCtrl p_reportingCtrl := *,
template TimeStamp p_expiryDeadline := *
) := {
address_ := p_address,
callbackReference := p_callbackReference,
checkImmediate := p_checkImmediate,
subscriptionType := "ZoneLocationEventSubscription",
clientCorrelator := p_clientCorrelator,
count := *,
duration := *,
enteringLeavingCriteria := p_enteringLeavingCriteria,
frequency := p_frequency,
latitude := p_latitude,
link := *,
longitude := p_longitude,
radius := p_radius,
requester := *,
resourceURL := p_resourceURL,
trackingAccuracy := p_trackingAccuracy
} // End of template m_wcircle_notification_subscription
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := p_links_,
zoneId := p_zoneId,
locationEventCriteria := p_locationEventCriteria,
reportingCtrl := p_reportingCtrl,
expiryDeadline := p_expiryDeadline
} // End of template mw_zone_location_event_subscription
template (value) TerminalDistance m_terminal_distance(in Json.Number p_distance) := {
distance := p_distance,
accuracy := omit,
timestamp_ := omit
} // End of template m_terminal_distance
template (omit) ZoneStatusSubscription m_zone_status_subscription(
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in ZoneId p_zoneId,
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) Json.UInteger p_upperNumberOfUsersZoneThreshold := omit,
in template (omit) Json.UInteger p_lowerNumberOfUsersZoneThreshold := omit,
in template (omit) Json.UInteger p_upperNumberOfUsersAPThreshold := omit,
in template (omit) Json.UInteger p_lowerNumberOfUsersAPThreshold := omit,
in template (omit) OperationStatus p_operationStatus := omit,
in template (omit) ReportingCtrl p_reportingCtrl := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "ZoneStatusSubscription",
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
zoneId := p_zoneId,
upperNumberOfUsersZoneThreshold := p_upperNumberOfUsersZoneThreshold,
lowerNumberOfUsersZoneThreshold := p_lowerNumberOfUsersZoneThreshold,
upperNumberOfUsersAPThreshold := p_upperNumberOfUsersAPThreshold,
lowerNumberOfUsersAPThreshold := p_lowerNumberOfUsersAPThreshold,
operationStatus := p_operationStatus,
reportingCtrl := p_reportingCtrl,
expiryDeadline := p_expiryDeadline
} // End of template m_zone_status_subscription
template (present) TerminalDistance mw_terminal_distance(template (present) Json.Number p_distance := ?) := {
distance := p_distance,
accuracy := *,
timestamp_ := *
} // End of template mw_terminal_distance
template (present) ZoneStatusSubscription mw_zone_status_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Address p_address := ?,
template (present) ZoneId p_zoneId := ?,
template (present) Links p_links_ := ?,
template ClientCorrelator p_clientCorrelator := *,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template Json.UInteger p_upperNumberOfUsersZoneThreshold := *,
template Json.UInteger p_lowerNumberOfUsersZoneThreshold := *,
template Json.UInteger p_upperNumberOfUsersAPThreshold := *,
template Json.UInteger p_lowerNumberOfUsersAPThreshold := *,
template OperationStatus p_operationStatus := *,
template ReportingCtrl p_reportingCtrl := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "ZoneStatusSubscription",
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := p_links_,
zoneId := p_zoneId,
upperNumberOfUsersZoneThreshold := p_upperNumberOfUsersZoneThreshold,
lowerNumberOfUsersZoneThreshold := p_lowerNumberOfUsersZoneThreshold,
upperNumberOfUsersAPThreshold := p_upperNumberOfUsersAPThreshold,
lowerNumberOfUsersAPThreshold := p_lowerNumberOfUsersAPThreshold,
operationStatus := p_operationStatus,
reportingCtrl := p_reportingCtrl,
expiryDeadline := p_expiryDeadline
} // End of template mw_zone_status_subscription
template (omit) DistanceNotificationSubscription m_distance_notification_subscription(
in template (value) CallbackReference p_callbackReference,
in template (value) Json.Bool p_checkImmediate := true,
template (omit) UserAreaSubscription m_user_area_subscription(
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in template (value) AreaInfo p_areaDefine,
in Json.Number p_trackingAccuracy,
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (value) DistanceCriteria p_criteria := AllWithinDistance,
in template (value) Json.Number p_distance,
in template (value) UInt32 p_frequency := 10,
in template (value) Addresses p_monitoredAddress,
in template (omit) Addresses p_referenceAddress := omit,
in template (value) Json.Number p_trackingAccuracy := 10.0,
in template (omit) ResourceURL p_resourceURL := omit
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) LocationEventCriteria p_locationEventCriteria := omit,
in template (omit) ReportingCtrl p_reportingCtrl := omit,
in template (omit) Json.Bool p_reportingLocationReq := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
callbackReference := p_callbackReference,
checkImmediate := p_checkImmediate,
subscriptionType := "UserAreaSubscription",
clientCorrelator := p_clientCorrelator,
count := omit,
criteria := p_criteria,
distance := p_distance,
duration := omit,
frequency := p_frequency,
link := omit,
monitoredAddress := p_monitoredAddress,
referenceAddress := p_referenceAddress,
requester := omit,
resourceURL := p_resourceURL,
trackingAccuracy := p_trackingAccuracy
} // End of template m_distance_notification_subscription
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
areaDefine := p_areaDefine,
trackingAccuracy := p_trackingAccuracy,
locationEventCriteria := p_locationEventCriteria,
reportingCtrl := p_reportingCtrl,
reportingLocationReq := p_reportingLocationReq,
expiryDeadline := p_expiryDeadline
} // End of template m_user_area_subscription
template DistanceNotificationSubscription mw_distance_notification_subscription(
template (present) UserAreaSubscription mw_user_area_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Json.Bool p_checkImmediate := ?,
template ClientCorrelator p_clientCorrelator := *,
template (present) DistanceCriteria p_criteria := ?,
template (present) Json.Number p_distance := ?,
template (present) UInt32 p_frequency := ?,
template (present) Addresses p_monitoredAddress := ?,
template Addresses p_referenceAddress := *,
template (present) Address p_address := ?,
template (present) Links p_links_ := ?,
template (present) AreaInfo p_areaDefine := ?,
template (present) Json.Number p_trackingAccuracy := ?,
template ResourceURL p_resourceURL := *
template ClientCorrelator p_clientCorrelator := *,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template LocationEventCriteria p_locationEventCriteria := *,
template ReportingCtrl p_reportingCtrl := *,
template Json.Bool p_reportingLocationReq := *,
template TimeStamp p_expiryDeadline := *
) := {
callbackReference := p_callbackReference,
checkImmediate := p_checkImmediate,
subscriptionType := "UserAreaSubscription",
clientCorrelator := p_clientCorrelator,
count := *,
criteria := p_criteria,
distance := p_distance,
duration := *,
frequency := p_frequency,
link := *,
monitoredAddress := p_monitoredAddress,
referenceAddress := p_referenceAddress,
requester := *,
resourceURL := p_resourceURL,
trackingAccuracy := p_trackingAccuracy
} // End of template mw_distance_notification_subscription
template (omit) PeriodicNotificationSubscription m_periodic_notification_subscription(
in template (value) Addresses p_address,
in template (value) CallbackReference p_callbackReference,
in template (value) UInt32 p_frequency := 10,
in template (value) UInt32 p_requestedAccuracy := 1,
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
areaDefine := p_areaDefine,
trackingAccuracy := p_trackingAccuracy,
locationEventCriteria := p_locationEventCriteria,
reportingCtrl := p_reportingCtrl,
reportingLocationReq := p_reportingLocationReq,
expiryDeadline := p_expiryDeadline
} // End of template mw_user_area_subscription
template (omit) UserDistanceSubscription m_user_distance_subscription(
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in template (value) Json.AnyURIArray p_monitoredAddress,
in Json.Number p_distance,
in Json.Number p_trackingAccuracy,
in template (value) DistanceCriteria p_criteria := AllWithinDistance,
in Json.Bool p_checkImmediate := true,
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (omit) ResourceURL p_resourceURL := omit
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) Json.AnyURI p_referenceAddress := omit,
in template (omit) ReportingCtrl p_reportingCtrl := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
address_ := p_address,
callbackReference := p_callbackReference,
subscriptionType := "UserAreaSubscription",
clientCorrelator := p_clientCorrelator,
duration := omit,
frequency := p_frequency,
link := omit,
requestedAccuracy := p_requestedAccuracy,
requester := omit,
resourceURL := p_resourceURL
} // End of template m_periodic_notification_subscription
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
referenceAddress := p_referenceAddress,
monitoredAddress := p_monitoredAddress,
distance := p_distance,
trackingAccuracy := p_trackingAccuracy,
criteria := p_criteria,
checkImmediate := p_checkImmediate,
reportingCtrl := p_reportingCtrl,
expiryDeadline := p_expiryDeadline
} // End of template m_user_distance_subscription
template PeriodicNotificationSubscription mw_periodic_notification_subscription(
template (present) Addresses p_address := ?,
template (present) UserDistanceSubscription mw_user_distance_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) UInt32 p_frequency := ?,
template (present) UInt32 p_requestedAccuracy := ?,
template (present) Links p_links_ := ?,
template (present) Address p_address := ?,
template (present) Json.AnyURIArray p_monitoredAddress := ?,
template (present) Json.Number p_distance := ?,
template (present) Json.Number p_trackingAccuracy := ?,
template (present) DistanceCriteria p_criteria := ?,
template (present) Json.Bool p_checkImmediate := ?,
template ClientCorrelator p_clientCorrelator := *,
template ResourceURL p_resourceURL := *
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template Json.AnyURI p_referenceAddress := *,
template ReportingCtrl p_reportingCtrl := *,
template TimeStamp p_expiryDeadline := *
) := {
address_ := p_address,
callbackReference := p_callbackReference,
subscriptionType := "UserAreaSubscription",
clientCorrelator := p_clientCorrelator,
duration := *,
frequency := p_frequency,
link := *,
requestedAccuracy := p_requestedAccuracy,
requester := *,
resourceURL := p_resourceURL
} // End of template mw_periodic_notification_subscription
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := p_links_,
referenceAddress := p_referenceAddress,
monitoredAddress := p_monitoredAddress,
distance := p_distance,
trackingAccuracy := p_trackingAccuracy,
criteria := p_criteria,
checkImmediate := p_checkImmediate,
reportingCtrl := p_reportingCtrl,
expiryDeadline := p_expiryDeadline
} // End of template mw_user_distance_subscription
template (omit) UserDistanceNotification m_user_distance_notification(
in template (value) UserList p_monitoredUsers,
in template (value) DistanceCriteria p_distanceEvent,
in template (value) Links p_links_,
in template (omit) TimeStamp p_timeStamp := omit
) := {
notificationType := "UserDistanceNotification",
timeStamp := p_timeStamp,
monitoredUsers := p_monitoredUsers,
distanceEvent := p_distanceEvent,
links_ := p_links_
} // End of template m_user_distance_notification
template (present) UserDistanceNotification mw_user_distance_notification(
template (present) UserList p_monitoredUsers := ?,
template (present) DistanceCriteria p_distanceEvent := ?,
template (present) Links p_links_ := ?,
template TimeStamp p_timeStamp := *
) := {
notificationType := "UserDistanceNotification",
timeStamp := p_timeStamp,
monitoredUsers := p_monitoredUsers,
distanceEvent := p_distanceEvent,
links_ := p_links_
} // End of template mw_user_distance_notification
template (omit) UserLocationEventNotification m_user_location_event_notification(
in template (value) Address p_address_,
in template (value) LocationEventType p_userLocationEvent,
in template (value) Links p_links_,
in template (omit) TimeStamp p_timeStamp := omit,
in template (omit) LocationInfo p_locationInfo := omit,
in template (omit) CivicAddress p_civicInfo := omit,
in template (omit) RelativeLocationInfo p_relativeLocationInfo := omit,
in template (omit) ZoneId p_zoneId := omit,
in template (omit) AccessPointId p_accessPointId := omit
) :={
notificationType := "UserLocationEventNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
userLocationEvent := p_userLocationEvent,
locationInfo := p_locationInfo,
civicInfo := p_civicInfo,
relativeLocationInfo := p_relativeLocationInfo,
zoneId := p_zoneId,
accessPointId := p_accessPointId,
links_ := p_links_
} // End of template m_user_location_event_notification
template (present) UserLocationEventNotification mw_user_location_event_notification(
template (present) Address p_address_ := ?,
template (present) LocationEventType p_userLocationEvent := ?,
template (present) Links p_links_ := ?,
template TimeStamp p_timeStamp := *,
template LocationInfo p_locationInfo := *,
template CivicAddress p_civicInfo := *,
template RelativeLocationInfo p_relativeLocationInfo := *,
template ZoneId p_zoneId := *,
template AccessPointId p_accessPointId := *
) :={
notificationType := "UserLocationEventNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
userLocationEvent := p_userLocationEvent,
locationInfo := p_locationInfo,
civicInfo := p_civicInfo,
relativeLocationInfo := p_relativeLocationInfo,
zoneId := p_zoneId,
accessPointId := p_accessPointId,
links_ := p_links_
} // End of template mw_user_location_event_notification
template (omit) UserLocationPeriodicNotification m_user_location_periodic_notification(
in template (value) Address p_address_,
in template (value) LocationEventType p_userLocationEvent,
in template (value) Links p_links_,
in template (omit) TimeStamp p_timeStamp := omit,
in template (omit) LocationInfo p_locationInfo := omit,
in template (omit) CivicAddress p_civicInfo := omit,
in template (omit) RelativeLocationInfo p_relativeLocationInfo := omit,
in template (omit) ZoneId p_zoneId := omit,
in template (omit) AccessPointId p_accessPointId := omit,
in template (omit) Json.Bool p_isFinalNotification := omit
) :={
notificationType := "UserLocationPeriodicNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
userLocationEvent := p_userLocationEvent,
locationInfo := p_locationInfo,
civicInfo := p_civicInfo,
relativeLocationInfo := p_relativeLocationInfo,
zoneId := p_zoneId,
accessPointId := p_accessPointId,
isFinalNotification := p_isFinalNotification,
links_ := p_links_
} // End of template m_user_location_periodic_notification
template (present) UserLocationPeriodicNotification mw_user_location_periodic_notification(
template (present) Address p_address_ := ?,
template (present) LocationEventType p_userLocationEvent := ?,
template (present) Links p_links_ := ?,
template TimeStamp p_timeStamp := *,
template LocationInfo p_locationInfo := *,
template CivicAddress p_civicInfo := *,
template RelativeLocationInfo p_relativeLocationInfo := *,
template ZoneId p_zoneId := *,
template AccessPointId p_accessPointId := *,
template Json.Bool p_isFinalNotification := *
) :={
notificationType := "UserLocationPeriodicNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
userLocationEvent := p_userLocationEvent,
locationInfo := p_locationInfo,
civicInfo := p_civicInfo,
relativeLocationInfo := p_relativeLocationInfo,
zoneId := p_zoneId,
accessPointId := p_accessPointId,
isFinalNotification := p_isFinalNotification,
links_ := p_links_
} // End of template mw_user_location_periodic_notification
template (omit) ZoneLocationEventNotification m_zone_location_event_notification(
in template (value) Address p_address_,
in template (value) Links p_links_,
in template (value) LocationEventType p_userLocationEvent,
in template (omit) TimeStamp p_timeStamp := omit,
in template (omit) ZoneId p_zoneId := omit
) := {
notificationType := "ZoneLocationEventNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
userLocationEvent := p_userLocationEvent,
zoneId := p_zoneId,
links_ := p_links_
} // End of template m_zone_location_event_notification
template (present) ZoneLocationEventNotification mw_zone_location_event_notification(
template (present) Address p_address_ := ?,
template (present) Links p_links_ := ?,
template (present) LocationEventType p_userLocationEvent := ?,
template TimeStamp p_timeStamp := *,
template ZoneId p_zoneId := *
) := {
notificationType := "ZoneLocationEventNotification",
timeStamp := p_timeStamp,
address_ := p_address_,
userLocationEvent := p_userLocationEvent,
zoneId := p_zoneId,
links_ := p_links_
} // End of template mw_zone_location_event_notification
template (omit) ZoneStatusNotification m_zone_status_notification(
in template (value) Links p_links_,
in template (omit) UserNumEvent p_userNumEvent := omit,
in template (omit) OperationStatus p_operationStatus := omit,
in template (omit) TimeStamp p_timeStamp := omit,
in template (omit) ZoneId p_zoneId := omit,
in template (omit) AccessPointId p_accessPointId := omit
) := {
notificationType := "ZoneStatusNotification",
timeStamp := p_timeStamp,
userNumEvent := p_userNumEvent,
operationStatus := p_operationStatus,
zoneId := p_zoneId,
accessPointId := p_accessPointId,
links_ := p_links_
} // End of template m_zone_status_notification
template (present) ZoneStatusNotification mw_zone_status_notification(
template (present) Links p_links_ := ?,
template UserNumEvent p_userNumEvent := *,
template OperationStatus p_operationStatus := *,
template TimeStamp p_timeStamp := *,
template ZoneId p_zoneId := *,
template AccessPointId p_accessPointId := *
) := {
notificationType := "ZoneStatusNotification",
timeStamp := p_timeStamp,
userNumEvent := p_userNumEvent,
operationStatus := p_operationStatus,
zoneId := p_zoneId,
accessPointId := p_accessPointId,
links_ := p_links_
} // End of template mw_zone_status_notification
template (value) TestNotification m_test_notification(
in template (value) LinksSubscription p_links_
) := {
notificationType := "TestNotification",
links_ := p_links_
} // End of template m_test_notification
template (present) TestNotification mw_test_notification(
template (present) LinksSubscription p_links_ := ?
) := {
notificationType := "TestNotification",
links_ := p_links_
} // End of template mw_test_notification
template (omit) AreaInfo m_area_info(
in template (value) Shape p_shape,
in template (value) Points p_points,
in template (omit) Json.UInteger p_radius := omit
) := {
shape := p_shape,
points := p_points,
radius := p_radius
} // End of template m_area_info
template (present) AreaInfo mw_area_info(
template (present) Shape p_shape := ?,
template (present) Points p_points := ?,
template Json.UInteger p_radius := *
) := {
shape := p_shape,
points := p_points,
radius := p_radius
} // End of template mw_area_info
template (value) Point m_point(
in Latitude p_latitude,
in Longitude p_longitude
) := {
latitude := p_latitude,
longitude := p_longitude
} // End of template m_point
template (present) Point mw_point(
template (present) Latitude p_latitude := ?,
template (present) Longitude p_longitude := ?
) := {
latitude := p_latitude,
longitude := p_longitude
} // End of template mw_point
template (value) TerminalDistance m_terminal_distance(in Json.Number p_distance) := {
distance := p_distance,
accuracy := omit,
timestamp_ := omit
} // End of template m_terminal_distance
template (present) TerminalDistance mw_terminal_distance(template (present) Json.Number p_distance := ?) := {
distance := p_distance,
accuracy := *,
timestamp_ := *
} // End of template mw_terminal_distance
} // End of module LocationAPI_Templates
/**
* @author ETSI / STF569
* @author ETSI / STF569 / TTF T027
* @version $Url$
* $Id$
* @desc Types ANd Values for ETSI GS MEC 013 V2.1.1 (2019-09)
* @desc Types ANd Values for ETSI GS MEC 013 V3.1.1 (2019-09)
* @copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media.
......@@ -13,81 +13,104 @@ module LocationAPI_TypesAndValues {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
// LibMec
import from LibMec_TypesAndValues all;
/**
* @desc The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* @desc This type represents a list of UserInfo.
* @member user Collection of the user location information list.
* @member resourceURL Self referring URL.
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.5 Type: UserList
*/
type UInt32 Seconds;
type record UserList {
UserInfos user optional,
ResourceURL resourceURL optional
}
type record of UserInfo UserInfos;
/**
* @desc The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* @desc This type represents configuration for the delivery of subscription notifications over Websockets
* @member websocketUri Set by location server to indicate to the service consumer the Websocket URI to be used for delivering notifications
* @member requestWebsocketUri Set to true by the service consumer to indicate that Websocket delivery is requested
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.5.4 Type: WebsockNotifConfig
*/
type UInt32 NanoSeconds;
type record WebsockNotifConfig {
Json.AnyURI websocketUri optional,
Json.Bool requestWebsocketUri optional
}
/**
* @desc
* @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.5.2 Type: TimeStamp
* @desc This type represents some requirements about reporting the event of user locationreportingLocationReq This IE shall be set to true if a location estimate is required for each event report
* @member accessPointList One or more access points forming a monitoring area that could be any shape
* @member zoneId Identifier of zone (e.g. zone001) to monitor
* @member occurrenceInfo One time only report indication
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.5.5 Type: UserEventPara
*/
type record TimeStamp {
Seconds seconds,
NanoSeconds nanoSeconds
}
type record UserEventPara {
Json.Bool reportingLocationReq optional,
AccessPointList accessPointList optional,
ZoneId zoneId optional,
OccurrenceInfo occurrenceInfo optional
} // End of type UserEventPara
/**
* @desc A type containing list of users.
* @member user Collection of the zone information list.
* @member resourceURL Self referring URL.
* @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.2.2 Type: UserInfo
/**
* @desc Indicates whether event reporting is one time
* @see ETSI TS 129 572 V16.7.0 (2021-08) Clause 6.1.6.3.16 Enumeration: OccurrenceInfo
*/
type record of UserInfo UserInfos;
type record UserList {
UserInfos user optional,
ResourceURL resourceURL
type enumerated OccurrenceInfo {
ONE_TIME_EVENT,
MULTIPLE_TIME_EVENT
}
/**
* @desc Shape information, as detailed in [14], associated with the reported location coordinate
* @see ETSI GS MEC 013 V2.1.1 (2019-09) Table 6.5.3-1: Definition of type LocationInfo
* @desc This type represents the parameters that control the report times and frequency
* @member minimumInterval Minimum interval between reports in case frequently reporting. Unit is second.
* @member maximumFrequency Maximum frequency (in seconds) of notifications per subscription
* @member maximumCount Maximum number of notifications. For no maximum, either do not include this element or specify a value of zero. Default value is 0
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.5.6 Type: ReportingCtrl
*/
type enumerated Shape {
ELLIPSOID_ARC (1),
ELLIPSOID_POINT (2),
ELLIPSOID_POINT_ALTITUDE (3),
ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID (4),
ELLIPSOID_POINT_UNCERT_CIRCLE (5),
ELLIPSOID_POINT_UNCERT_ELLIPSE (6),
POLYGON (7)
} with {
variant "JSON: as number"
}
type record ReportingCtrl {
Json.UInteger minimumInterval optional,
Json.UInteger maximumFrequency optional,
Json.UInteger maximumCount optional
} // End of type ReportingCtrl
/**
* @desc Velocity information, as detailed in [14], associated with the reported location coordinate
* @see ETSI GS MEC 013 V2.1.1 (2019-09) Table 6.5.3-1: Definition of type LocationInfo
* @desc This type represents the parameters that describe an area
* @member shape The shape of the area monitored
* @member points Shall include one point if the shape is CIRCLE
* @member radius
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.5.7 Type: AreaInfo
*/
type enumerated VelocityType {
HORIZONTAL (1),
HORIZONTAL_VERTICAL (2),
HORIZONTAL_UNCERT (3),
HORIZONTAL_VERTICAL_UNCERT (4)
}
type record Velocity {
VelocityType velocityType,
UInt32 bearing,
UInt32 horizontalSpeed,
Int32 verticalSpeed optional,
UInt32 verticalUncertainty optional
}
type record AreaInfo {
Shape shape,
Points points,
Json.UInteger radius optional
} // End of type AreaInfo
/**
* @desc Location latitude, expressed in the range -90° to +90°
*/
type record of Json.Number Latitude;
/**
* @desc Location longitude, expressed in the range -180° to +180°
*/
type record of Json.Number Longitude;
/**
* @desc This type represents the geographical location of a point
* @member latitude Location latitude, expressed in the range -90° to +90°
* @member longitude Location longitude, expressed in the range -180° to +180°
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.5.8 Type: Point
*/
type record Point {
Latitude latitude,
Longitude longitude
} // End of type Point
type record of Point Points;
/**
* @desc A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided.
* @member latitude Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if "shape" equals 7.
......@@ -104,21 +127,21 @@ module LocationAPI_TypesAndValues {
* @member includedAngle Present only if \"shape\" equals 6
* @member shape Shape information, as detailed in [14], associated with the reported location coordinate
* @member velocity Structure with attributes relating to the target entity’s velocity, as defined in [14]
* @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.5.3 Type: LocationInfo
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.5.3 Type: LocationInfo
*/
type record LocationInfo {
Latitude latitude,
Longitude longitude,
Json.Number altitude optional,
UInt32 accuracy optional,
UInt32 accuracySemiMinor optional,
UInt32 accuracyAltitude optional,
UInt32 orientationMajorAxis optional,
UInt32 confidence optional,
UInt32 innerRadius optional,
UInt32 uncertaintyRadius optional,
UInt32 offsetAngle optional,
UInt32 includedAngle optional,
Json.UInteger accuracy optional,
Json.UInteger accuracySemiMinor optional,
Json.UInteger accuracyAltitude optional,
Json.UInteger orientationMajorAxis optional,
Json.UInteger confidence optional,
Json.UInteger innerRadius optional,
Json.UInteger uncertaintyRadius optional,
Json.UInteger offsetAngle optional,
Json.UInteger includedAngle optional,
Shape shape,
TimeStamp timestamp_ optional,
Velocity velocity optional
......@@ -126,6 +149,63 @@ module LocationAPI_TypesAndValues {
variant (timestamp_) "name as 'timestamp'";
} // End of type LocationInfo
/**
* @desc Shape information, as detailed in [14], associated with the reported location coordinate
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Table 6.5.3-1: Definition of type LocationInfo
*/
type enumerated Shape {
ELLIPSOID_ARC (1),
ELLIPSOID_POINT (2),
ELLIPSOID_POINT_ALTITUDE (3),
ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID (4),
ELLIPSOID_POINT_UNCERT_CIRCLE (5),
ELLIPSOID_POINT_UNCERT_ELLIPSE (6),
POLYGON (7)
} with {
variant "JSON: as number"
}
/**
* @desc Velocity information, as detailed in [14], associated with the reported location coordinate
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Table 6.5.3-1: Definition of type LocationInfo
*/
type enumerated VelocityType {
HORIZONTAL (1),
HORIZONTAL_VERTICAL (2),
HORIZONTAL_UNCERT (3),
HORIZONTAL_VERTICAL_UNCERT (4),
ELLIPSOID_POINT_UNCERT_CIRCLE (5),
ELLIPSOID_POINT_UNCERT_ELLIPSE (6),
POLYGON (7)
} with {
variant "JSON: as number"
}
/**
* @desc Structure with attributes relating to the target entity's velocity
* @member velocityType Velocity information
* @member bearing Bearing, expressed in the range 0° to 360°
* @member horizontalSpeed Horizontal speed
* @member uncertainty Horizontal uncertainty
* @member verticalSpeed Vertical speed, expressed in km/h
* @member verticalUncertainty Vertical uncertainty
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Table 6.5.3-1: Definition of type LocationInfo
*/
type record Velocity {
VelocityType velocityType,
Json.UInteger bearing,
Json.UInteger horizontalSpeed,
Json.UInteger uncertainty optional,
Json.Integer verticalSpeed optional,
Json.UInteger verticalUncertainty optional
} // End of type Velocity
/**
* @desc Identifier of access point, <E-CGI><Cell Portion ID> (reference ETSI TS 129 171). Where the E-CGI is made up of the PLMN and Cell Identity (28 bit string). Then the PLMN is made up of the 3 digit MCC & 2 or 3 digit MNC. The Cell Portion is an optional element
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.6.1 accessPointId
*/
type Json.String AccessPointId;
/**
* @desc A type containing zone information.
* @member zoneId Identifier of zone
......@@ -133,6 +213,8 @@ module LocationAPI_TypesAndValues {
* @member numberOfUnservicableAccessPoints Number of inoperable access points within the zone.
* @member numberOfUsers The number of users currently on the access point.
* @member resourceURL Self referring URL.
* @see OMA-TS-REST_NetAPI_ZonalPresence-V1_0-20160308-C Clause 5.2.2.2 Type: ZoneInfo
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.1 Zonal presence data types
*/
type record ZoneInfo {
ZoneId zoneId,
......@@ -141,25 +223,21 @@ module LocationAPI_TypesAndValues {
NumberOfUsers numberOfUsers,
ResourceURL resourceURL
}
type record of ZoneInfo ZoneInfos;
/**
* @desc Collection of the zone information list.
* @member zone Collection of the zone information list.
* @member resourceURL Self referring URL.
* @see OMA-TS-REST_NetAPI_ZonalPresence-V1_0-20160308-C Clause 5.2.2.1 Type: ZoneList
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.1 Zonal presence data types
*/
type record of ZoneInfo ZoneInfos;
type record ZoneList {
ZoneInfos zone optional,
ResourceURL resourceURL
}
/**
* @desc Identifier of access point, <E-CGI><Cell Portion ID> (reference ETSI TS 129 171). Where the E-CGI is made up of the PLMN and Cell Identity (28 bit string). Then the PLMN is made up of the 3 digit MCC & 2 or 3 digit MNC. The Cell Portion is an optional element
* @see ETSI GS MEC 013 V2.1.1 (2019-09) 6.6.1 accessPointId
*/
type Json.String AccessPointId;
type UInt32 DateTimeStamp; // FIXME To be reviewed
type Json.UInteger DateTimeStamp; // FIXME To be reviewed
/**
* @desc A type containing access point information.
......@@ -170,6 +248,8 @@ module LocationAPI_TypesAndValues {
* @member interestRealm Interest realm of access point
* @member timezone Time zone of access point
* @member resourceURL Self referring URL.
* @see OMA-TS-REST_NetAPI_ZonalPresence-V1_0-20160308-C Clause 5.2.2.4 Type: AccessPointInfo
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.1 Zonal presence data types
*/
type record AccessPointInfo {
AccessPointId accessPointId,
......@@ -181,6 +261,7 @@ module LocationAPI_TypesAndValues {
DateTimeStamp timezone optional,
ResourceURL resourceURL
}
/**
* @desc Collection of the access point information list
*/
......@@ -191,6 +272,8 @@ module LocationAPI_TypesAndValues {
* @member zoneId Identifier of zone
* @member accessPoint Collection of the access point information list.
* @member resourceURL Self referring URL
* @see OMA-TS-REST_NetAPI_ZonalPresence-V1_0-20160308-C Clause 5.2.2.3 Type: AccessPointList
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.1 Zonal presence data types
*/
type record AccessPointList {
ZoneId zoneId,
......@@ -199,7 +282,7 @@ module LocationAPI_TypesAndValues {
}
/**
* @desc Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI).
* @desc Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
*/
type Json.AnyURI Address
type record of Address Addresses;
......@@ -209,31 +292,10 @@ module LocationAPI_TypesAndValues {
*/
type Json.String AncillaryInfo;
/**
* @desc CallBackData if passed by the application during the associated ZonalTrafficSubscription and UserTrackingSubscription operation. See [\
REST_NetAPI_Common].
*/
type Json.String CallbackData;
/**
* @desc Notification serialization format
*/
type enumerated NotificationFormat {
JSON (1),
XML (2)
}
/**
* @desc CallbackData description
* @member callbackData Data the application can register with the server when subscribing to notifications, and that are passed back unchanged in each of the related notifications. These data can be used by the application in the processing of the notification, e.g. for correlation purposes
* @member notificationFormat
* @member notifyURL Notify Callback URL
*/
type record CallbackReference {
NotifyURL notifyURL,
CallbackData callbackData optional,
NotificationFormat notificationFormat optional
}
*/
type Json.AnyURI CallbackReference;
/**
* @desc Uniquely identifies this create subscription request. If there is a communication failure during the request, using the same clientCorrelator when retrying the request allows the operator to avoid creating a duplicate subscription.
......@@ -241,19 +303,20 @@ REST_NetAPI_Common].
type Json.String ClientCorrelator;
/**
* @desc The connection type for the access point
* @desc This enumeration represents the connection type of an access point.
* @member LTE Access point provides a LTE-Femto connection
* @member Wifi Access point provides a Wifi® connection
* @member Wimax Access point provides a Wimax® connection
* @member FiveG_NR Access point provides a 5G NR connection
* @member UNKNOWN Access point connection type is unknown
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.7.5 Enumeration: ConnectionType
*/
type enumerated ConnectionType {
Femto,
LTE_femto,
Smallcell,
LTE_smallcell,
LTE,
Wifi,
Pico,
Micro,
Macro,
Wimax,
Unknown
FiveG_NR,
UNKNOWN
}
/**
......@@ -277,54 +340,86 @@ REST_NetAPI_Common].
type Json.String InterestRealm;
/**
* @desc Link to other resources
* @member rel Describes the relationship between the URI and the resource.
* @member href UTI
* @desc This type represents a type of link and may be referenced from data structures
* @member href URI referring to a resource
* @see ETSI TS 129 572 V16.7.0 (2021 08) Clause 6.7.2 Type: LinkType
*/
type record LinkType {
Json.AnyURI href
}
/**
* @desc This type represents specified event types for UE location report
* @member ENTERING_AREA_EVENT Entering area reporting event
* @member LEAVING_AREA_EVENT Leaving area reporting event
* @see ETSI TS 129 572 V16.7.0 (2021 08) Clause 6.7.3 Enumeration: LocationEventType
*/
type enumerated LocationEventType {
ENTERING_AREA_EVENT,
LEAVING_AREA_EVENT
}
type record of LocationEventType LocationEventCriteria;
/**
* @desc This enumeration represents the result of a localization associated with a notification
* @member SUCCESS Localization is successful
* @member ABNORMAL Localization is failed due to timeout or other unspecific errors
* @see ETSI TS 129 572 V16.7.0 (2021 08) 6.7.4 Enumeration: NotificationResult
*/
type record Link {
Json.String rel,
Json.String href
type enumerated NotificationResult {
SUCCESS,
ABNORMAL
}
/**
* @desc The URL of your own listener application.
*/
type Json.String NotifyURL;
type Json.AnyURI NotifyURL;
/**
* @desc Hyperlink related to the resource
* @member self_ Self-referring URI
*/
type record Links {
LinkType self_
} with {
variant (self_) "name as 'self'";
}
/**
* @desc The number of access points within the zone
*/
type UInt32 NumberOfAccessPoints;
type Json.UInteger NumberOfAccessPoints;
/**
* @desc Number of inoperable access points within the zone.
*/
type UInt32 NumberOfUnserviceableAccessPoints;
type Json.UInteger NumberOfUnserviceableAccessPoints;
/**
* @desc The number of users currently on the access point.
*/
type UInt32 NumberOfUsers;
type Json.UInteger NumberOfUsers;
/**
* @desc Threshold number of users in an access point which if crossed shall cause a notification.
*/
type UInt32 NumberOfUsersAPThreshold;
type Json.UInteger NumberOfUsersAPThreshold;
/**
* @desc This element shall be present when ZoneStatusSubscription includes numberOfUsersAPThreshold element and the number of users in an access point exceeds the threshold defined in the subscription.
*/
type UInt32 NumberOfUsersInAP;
type Json.UInteger NumberOfUsersInAP;
/**
* @desc Threshold number of users in a zone which if crossed shall cause a notification.
*/
type UInt32 NumberOfUsersInZone;
type Json.UInteger NumberOfUsersInZone;
/**
* @desc Threshold number of users in a zone which if crossed shall cause a notification.
*/
type UInt32 NumberOfUsersZoneThreshold;
type Json.UInteger NumberOfUsersZoneThreshold;
/**
* @desc The operation status of the access point
......@@ -373,25 +468,99 @@ REST_NetAPI_Common].
*/
type record of UserEventType UserEventCriteria;
/**
* @desc Definition of type CivicAddress
* @member country The two-letter ISO 3166 country code in capital ASCII letters
* @member A1 National subdivisions
* @member A2 County, parish
* @member A3 City, township
* @member A4 City division, borough, city district
* @member A5 Neighbourhood
* @member A6 Group of streets below the neighbourhood level IETF RFC 4776 [6]
* @member PRD Leading street direction IETF RFC 4776 [6]
* @member POD Trailing street suffix IETF RFC 4776 [6]
* @member STS Street suffix or type IETF RFC 4776 [6]
* @member HNO House number IETF RFC 4776 [6]
* @member HNS House number suffix IETF RFC 4776 [6]
* @member LMK Landmark or vanity address IETF RFC 4776 [6]
* @member LOC Additional location information IETF RFC 4776 [6]
* @member NAM Name (residence and office occupant) IETF RFC 4776 [6]
* @member PC Postal/zip code IETF RFC 4776 [6]
* @member BLD Building (structure) IETF RFC 5139 [7]
* @member UNIT Unit (apartment, suite) IETF RFC 5139 [7]
* @member FLR Floor IETF RFC 4776 [6]
* @member Room Place-type IETF RFC 5139 [7]
* @member PCN Postal community name IETF RFC 5139 [7]
* @member POBOX Post office box (P.O. box) IETF RFC 5139 [7]
* @member ADDCODE Additional code IETF RFC 5139 [7]
* @member SEAT Seat (desk, cubicle, workstation) IETF RFC 5139 [7]
* @member RD Primary road or street IETF RFC 5139 [7]
* @member RDSEC Road clause IETF RFC 5139 [7]
* @member RDBR Road branch IETF RFC 5139 [7]
* @member RDSUBBR Road sub-branch IETF RFC 5139 [7]
* @member PRM Road pre-modifier IETF RFC 5139 [7]
* @member POM Road post-modifier IETF RFC 5139 [7]
* @member usageRules When present, this IE shall carry the value of "usagerules" Element of the PIDL-LO XML document
* @member method When present, this IE shall contain the method token, carried by the "method" Element of the PIDLLO XML document. IETF RFC 4119 [25] providedBy string O 0..1 When present, this IE shall carry the value of "provided-by" Element of the PIDL-LO XML document
* @member providedBy When present, this IE shall carry the value of "provided-by" Element of the PIDL-LO XML document
* @see ETSI TS 129 572 V16.7.0 (2021 08) Table 6.1.6.2.14-1
*/
type record CivicAddress {
Json.String country,
Json.String A1 optional,
Json.String A3 optional,
Json.String A4 optional,
Json.String A5 optional,
Json.String A6 optional,
Json.String PRD optional,
Json.String POD optional,
Json.String STS optional,
Json.String HNO optional,
Json.String HNS optional,
Json.String LMK optional,
Json.String LOC optional,
Json.String NAM optional,
Json.String PC optional,
Json.String BLD optional,
Json.String UNIT optional,
Json.String FLR optional,
Json.String Room optional,
Json.String PCN optional,
Json.String POBOX optional,
Json.String ADDCODE optional,
Json.String SEAT optional,
Json.String RD optional,
Json.String RDSEC optional,
Json.String RDBR optional,
Json.String RDSUBBR optional,
Json.String PRM optional,
Json.String POM optional,
Json.String usageRules optional,
Json.String method optional,
Json.String providedBy
}
/**
* @desc A type containing user information.
* @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI).
* @member accessPointId Identifier of access point, <E-CGI><Cell Portion ID> (reference ETSI TS 129 171).
* @member zoneId Identifier of zone
* @member timestamp
* @member zoneId The identity of the zone the user is currently within,
* @member timestamp Date and time that location was collected
* @member resourceURL Self referring URL.
* @member locationInfo A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided.
* @member civicInfo Contextual information of a user location
* @member contextLocationInfo Contextual information of a user location (e.g. aisle, floor, room number, etc.).
* @member ancillaryInfo Reserved for future use
* @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.2.2 Type: UserInfo
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.2 Type: UserInfo
*/
type record UserInfo {
Address address_,
AccessPointId accessPointId,
ZoneId zoneId,
ResourceURL resourceURL optional,
TimeStamp timestamp_,
ResourceURL resourceURL,
LocationInfo locationInfo optional,
CivicAddress civicInfo optional,
ContextLocationInfo contextLocationInfo optional,
AncillaryInfo ancillaryInfo optional
} with {
......@@ -400,172 +569,51 @@ REST_NetAPI_Common].
} // End of type UserInfo
/**
* @desc A type containing user tracking subscription.
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference
* @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI) to monitor
* @member userEventCriteria List of user event values to generate notifications for (these apply to address specified). If this element is missing, a notification is requested to be generated for any change in user event
* @member resourceURL Self referring URL
* @desc Represents the relative location in a reference system that is a Cartesian coordinate system and described by a map
* @member mapInfo Indicates a map corresponding to a location area
* @member X Indicates the value (in the unit of meters) on x-axis of the relative location in the Cartesian system
* @member Y Indicates the value (in the unit of meters) on y-axis of the relative location in the Cartesian system
* @member Z Indicates the value (in the unit of meters) on z-axis of the relative location in the Cartesian system for a 3D-Point
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.3
*/
type record UserTrackingSubscription {
ClientCorrelator clientCorrelator optional,
CallbackReference callbackReference,
Address address_,
UserEventCriteria userEventCriteria optional,
ResourceURL resourceURL optional
} with {
variant (address_) "name as 'address'";
type record RelativeLocationInfo {
MapInfo mapInfo,
Json.Number X,
Json.Number Y,
Json.Number Z optional
}
/**
* @desc A type containing periodic tracking subscription.
* @member
* @desc Indicates the location of the map origin in the local Cartesian coordinate system
* @member latitude Location latitude, expressed in the range -90° to +90°
* @member longitude Location longitude, expressed in the range -180° to +180°
* @member Location altitude relative to the WGS84 ellipsoid surface
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.4
*/
type record PeriodicTrackingSubscription {
ClientCorrelator clientCorrelator optional,
CallbackReference callbackReference,
Address address_,
Json.Number frequency,
Json.Number requestedAccuracy,
ResourceURL resourceURL optional
} with {
variant (address_) "name as 'address'";
}
/**
* @desc A type containing zonal presence notification
* @member callbackData CallBackData if passed by the application during the associated ZonalTrafficSubscription and UserTrackingSubscription operation. See
* @member zoneId Identifier of zone
* @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI) to monitor
* @member interestRealm Interest realm of access point (e.g. geographical area, a type of industry etc.)
* @member userEventType
* @member currentAccessPointId Identifier of access point
* @member previousAccessPointId Identifier of access point
* @member timestamp_
* @member link Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification.
*/
type record ZonalPresenceNotification {
CallbackData callbackData optional,
ZoneId zoneId,
Address address_,
InterestRealm interestRealm optional,
UserEventType userEventType,
CurrentAccessPointId currentAccessPointId,
PreviousAccessPointId previousAccessPointId optional,
TimeStamp timestamp_,
Link link optional
} with {
variant (address_) "name as 'address'";
variant (timestamp_) "name as 'timestamp'";
type record MapInfoOrigin {
Latitude latitude,
Longitude longitude,
Json.Number altitude optional
}
/**
* @desc A type containing zonal traffic subscription
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference
* @member zoneId Identifier of zone
* @member interestRealm Interest realms of access points within a zone (e.g. geographical area, a type of industry etc.).
* @member userEventCriteria List of user event values to generate notifications for (these apply to zone identifier or all interest realms within zone identifier specified). If this element is missing, a notification is requested to be generated for any change in user event.
* @member duration Period (in seconds) of time notifications are provided for
* @member resourceURL Self referring URL
* @desc This type represents a map that may incorporates an origin
* @member mapId Indicates the ID of the map
* @member Indicates the location of the map origin in the local Cartesian coordinate system
* @member ancillaryMapInfo Ancillary map information may be used to convert coordinates between different coordinate systems
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.4
*/
type record ZonalTrafficSubscription {
ClientCorrelator clientCorrelator optional,
CallbackReference callbackReference,
ZoneId zoneId,
InterestRealm interestRealm optional,
UserEventCriteria userEventCriteria optional,
Duration duration optional,
ResourceURL resourceURL optional
type record MapInfo {
Json.String mapId,
MapInfoOrigin origin optional,
AncillaryMapInfo ancillaryMapInfo optional
}
type Json.String AncillaryMapInfo;
/**
* @desc Identifier of zone
*/
type Json.String ZoneId;
/**
* @desc A type containing zone status notification.
* @member callbackData CallBackData if passed by the application during the associated ZoneStatusSubscription operation
* @member zoneId Identifier of zone
* @member accessPointId Identifier of an access point
* @member numberOfUsersInZone This element shall be present when ZoneStatusSubscription includes numberOfUsersZoneThreshold element and the number of users in a zone exceeds the threshold defined in this subscription
* @member numberOfUsersInAP This element shall be present when ZoneStatusSubscription includes numberOfUsersAPThreshold element and the number of users in an access point exceeds the threshold defined in the subscription
* @member operationStatus
* @member timestamp_
* @member link Link to other resources that are in relationship with this notification
*/
type record ZoneStatusNotification {
CallbackData callbackData optional,
ZoneId zoneId,
AccessPointId accessPointId optional,
NumberOfUsersInZone numberOfUsersInZone optional,
NumberOfUsersInAP numberOfUsersInAP optional,
OperationStatus operationStatus optional,
TimeStamp timestamp_,
Link link optional
} with {
variant (timestamp_) "name as 'timestamp'";
}
/**
* @desc A type containing zone status subscription.
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member resourceURL Self referring URL
* @member callbackReference
* @member zoneId Identifier of zone
* @member numberOfUsersZoneThreshold Threshold number of users in a zone which if crossed shall cause a notification
* @member numberOfUsersAPThreshold Threshold number of users in an access point which if crossed shall cause a notification
* @member operationStatus List of operation status values to generate notifications for (these apply to all access points within a zone).
*/
type record ZoneStatusSubscription {
ClientCorrelator clientCorrelator optional,
ResourceURL resourceURL optional,
CallbackReference callbackReference,
ZoneId zoneId,
NumberOfUsersZoneThreshold numberOfUsersZoneThreshold optional,
NumberOfUsersAPThreshold numberOfUsersAPThreshold optional,
OperationStatus operationStatus optional
}
/**
* @desc A type containing data for notifications, when the area is defined as a circle
* @member address Address of terminals to monitor (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member callbackReference
* @member checkImmediate Check location immediately after establishing notification
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member count Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0
* @member duration Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications
* @member enteringLeavingCriteria
* @member frequency Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications)
* @member latitude Latitude of center point
* @member link Link to other resources that are in relationship with the resource
* @member longitude Longitude of center point
* @member radius Radius circle around center point in meters
* @member requester Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member resourceURL Self referring URL
* @member trackingAccuracy Number of meters of acceptable error in tracking distance
*/
type record CircleNotificationSubscription {
Addresses address_,
CallbackReference callbackReference,
Json.Bool checkImmediate,
ClientCorrelator clientCorrelator optional,
UInt32 count optional,
UInt32 duration optional,
EnteringLeavingCriteria enteringLeavingCriteria,
UInt32 frequency,
Json.Number latitude,
Link link optional,
Json.Number longitude,
Json.Number radius,
Json.AnyURI requester optional,
ResourceURL resourceURL optional,
Json.Number trackingAccuracy
} with {
variant (address_) "name as 'address'";
}
type enumerated EnteringLeavingCriteria {
Entering,
Leaving
......@@ -576,6 +624,7 @@ REST_NetAPI_Common].
* @member distance Distance from terminal to a location or between two terminals specified in meters
* @member accuracy Accuracy of the provided distance in meters
* @member timestamp Date and time that location from which distance is calculated was collected
* @see OMA-TS-REST_NetAPI_TerminalLocation-V1_0_1-20151029-A Clause 5.2.2.5 Type: TerminalDistance
*/
type record TerminalDistance {
Json.Number distance,
......@@ -587,6 +636,11 @@ REST_NetAPI_Common].
/**
* @desc Distance criterium
* @member AllWithinDistance All monitored devices are within the specified distance
* @member AnyWithinDistance Any of monitored devices gets within the specified distance
* @member AllBeyondDistance All monitored devices are beyond the specified distance
* @member AnyBeyondDistance Any of monitored devices gets beyond the specified distance
* @see OMA-TS-REST_NetAPI_TerminalLocation-V1_0_1-20151029-A Clause 5.2.3.2 Enumeration: DistanceCriteria
*/
type enumerated DistanceCriteria {
AllWithinDistance,
......@@ -596,147 +650,466 @@ REST_NetAPI_Common].
}
/**
* @desc A type containing data for distance subscription, with reference to other devices
* @member callbackReference
* @member checkImmediate Check location immediately after establishing notification
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member count Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0
* @member criteria
* @member distance Distance between devices that shall be monitored
* @member duration Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications
* @member frequency Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications)
* @member link Link to other resources that are in relationship with the resource
* @member monitoredAddress Contains addresses of devices to monitor (e.g., 'sip' URI, 'tel' URI, 'acr' URI)
* @member referenceAddress Indicates address of each device that will be used as reference devices from which the distances towards monitored devices indicated in the Addresses will be monitored (e.g., 'sip' URI, 'tel' URI, 'acr' URI)
* @member requester Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member resourceURL Self referring URL
* @member trackingAccuracy Number of meters of acceptable error in tracking distance
*/
type record DistanceNotificationSubscription {
CallbackReference callbackReference,
Json.Bool checkImmediate,
ClientCorrelator clientCorrelator optional,
UInt32 count optional,
DistanceCriteria criteria,
Json.Number distance,
UInt32 duration optional,
UInt32 frequency,
Link link optional,
Addresses monitoredAddress,
Addresses referenceAddress optional,
Json.AnyURI requester optional,
ResourceURL resourceURL optional,
Json.Number trackingAccuracy
}
/**
* @desc A type containing data for periodic subscription
* @member address_ Address of terminals to monitor (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member callbackReference
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member duration Period of time (in seconds) notifications are provided for. If set to “0” (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications
* @member frequency Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications)
* @member link Link to other resources that are in relationship with the resource
* @member monitoredAddress Contains addresses of devices to monitor (e.g., 'sip' URI, 'tel' URI, 'acr' URI)
* @member requestedAccuracy Accuracy of the provided distance in meters
* @member requester Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member resourceURL Self referring URL
* @desc A type containing device address, retrieval status and location information
* @member address_ Address of the terminal to which the location information applies (e.g., 'sip' URI, 'tel' URI, 'acr' URI)
* @member locationRetrievalStatus Status of retrieval for this terminal address
* @member currentLocation Location of terminal
* @member errorInformation Used to indicate a notification termination or cancellation
* @see OMA-TS-REST_NetAPI_TerminalLocation-V1_0_1-20151029-A Clause 5.2.2.1 Type: TerminalLocation
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.1A Terminal location data types
*/
type record PeriodicNotificationSubscription {
Addresses address_,
CallbackReference callbackReference,
ClientCorrelator clientCorrelator optional,
UInt32 duration optional,
UInt32 frequency,
Link link optional,
UInt32 requestedAccuracy,
Json.AnyURI requester optional,
ResourceURL resourceURL optional
type record TerminalLocation {
Address address_,
RetrievalStatus locationRetrievalStatus,
LocationInfo currentLocation optional,
ServiceError errorInformation optional
} with {
variant (address_) "name as 'address'";
}
} // End of type TerminalLocation
type record of TerminalLocation TerminalLocationList
type record of Json.String Variables;
/**
* @desc Used to indicate a notification termination or cancellation
* @desc Indicate a notification termination or cancellation
* @member messageId Message identifier, either with prefix SVC or with prefix POL
* @member text Message text, with replacement variables marked with %n, where n is an index into the list of <variables> elements, starting at 1
* @member variables Variables to substitute into text string
* @see OMA-TS-REST_NetAPI_Common-V1_0-20180116-A Clause B.1.4 Type: ServiceError
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.2.1A Terminal location data types
*/
type record ServiceError {
Json.String messageId,
Json.String text,
Variables variables optional
Json.String variables optional
} // End of type ServiceError
/**
* @desc This type contains a list of subscriptions
* @member href The URI referring to the subscription
* @member subscriptionType Type of the subscription
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.3 Type: NotificationSubscriptionList
*/
type record Subscription {
Json.AnyURI href optional,
Json.String subscriptionType
}
type record of Subscription Subscriptions;
/**
* @desc A type containing device address, retrieval status and location information
* @member address_ Address of the terminal to which the location information applies (e.g., 'sip' URI, 'tel' URI, 'acr' URI)
* @member currentLocation
* @member errorInformation Used to indicate a notification termination or cancellation
* @member locationRetrievalStatus
* @desc This type contains a list of subscriptions
* @member subscription Subscription elements
* @member resourceURL Self-referring URL
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.3 Type: NotificationSubscriptionList
*/
type record TerminalLocation {
type record NotificationSubscriptionList {
Subscriptions subscription optional,
ResourceURL resourceURL
}
/**
* @desc This type represents a subscription to the notifications from location server about events related with user location
* @member subscriptionType Shall be set to "UserLocationEventSubscription"
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference URI exposed by the client on which to receive notifications via HTTP
* @member requestTestNotification Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4]
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications
* @member _links Hyperlink related to the resource
* @member address Address of user (e.g. 'sip' URI, 'tel' URI, 'acr' URI) to monitor
* @member userEventPara Requirements for user event reporting.
* @member locationEventCriteria List of user event values to generate notifications for (these apply to address specified).
* @member expiryDeadline The expiration time of the subscription determined by the UE Location Subscribe Service
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.4 Type: UserLocationEventSubscription
*/
type record UserLocationEventSubscription {
Json.String subscriptionType,
Json.String clientCorrelator optional,
CallbackReference callbackReference optional,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links_ optional,
Address address_,
LocationInfo currentLocation optional,
ServiceError errorInformation optional,
RetrievalStatus locationRetrievalStatus
UserEventPara userEventPara optional,
LocationEventCriteria locationEventCriteria optional,
TimeStamp expiryDeadline optional
} with {
variant (links_) "name as '_links'";
variant (address_) "name as 'address'";
} // End of type UserLocationEventSubscription
/**
* @desc This type represents a subscription to the notifications from location server about events triggered by timer expiration
* @member subscriptionType Shall be set to "UserLocationEventSubscription"
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference URI exposed by the client on which to receive notifications via HTTP
* @member requestTestNotification Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4]
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications
* @member _links Hyperlink related to the resource
* @member address_ Address of user (e.g. 'sip' URI, 'tel' URI, 'acr' URI) to monitor
* @member periodicEventInfo Information for periodic event reporting
* @member expiryDeadline The expiration time of the subscription determined by the UE Location Subscribe Service
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.5 Type: UserLocationPeriodicSubscription
*/
type record UserLocationPeriodicSubscription{
Json.String subscriptionType,
Json.String clientCorrelator optional,
CallbackReference callbackReference optional,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links_ optional,
Address address_,
PeriodicEventInfo periodicEventInfo,
TimeStamp expiryDeadline optional
} with {
variant (links_) "name as '_links'";
variant (address_) "name as 'address'";
} // End of type UserLocationPeriodicSubscription
/**
* @desc Information for periodic event reporting
* @member reportingAmount Number of event reports
* @member reportingInterval Interval of event reports
* @see ETSI TS 129 572 V16.7.0 Clause 6.1.6.2.24 Type: PeriodicEventInfo
*/
type record PeriodicEventInfo {
ReportingAmount reportingAmount,
ReportingInterval reportingInterval
} // End of type PeriodicEventInfo
/**
* @desc Number of required periodic event reports.
* Minimum: 1. Maximum: 8639999.
* @see ETSI TS 129 572 V16.7.0 Clause 6.1.6.3.2 Simple data types
*/
type integer ReportingAmount;
/**
* @desc Event reporting periodic interval in seconds.
* Minimum: 1. Maximum: 8639999.
* @remark ReportingInterval * ReportingAmount shall not exceed 8639999
* @see ETSI TS 129 572 V16.7.0 Clause 6.1.6.3.2 Simple data types
*/
type integer ReportingInterval;
/**
* @desc This type represents a subscription to the notifications from location server about user location events happened in the zone
* @desc This type represents a subscription to the notifications from location server about events related with user location
* @member subscriptionType Shall be set to "UserLocationEventSubscription"
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference URI exposed by the client on which to receive notifications via HTTP
* @member requestTestNotification Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4]
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications
* @member _links Hyperlink related to the resource
* @member zoneId Identifier of zone (e.g. zone001) to monitor
* @member reportingCtrl Provides parameters that ctrl the reporting
* @member expiryDeadline The expiration time of the subscription determined by the UE Location Subscribe Service
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.6 Type: ZoneLocationEventSubscription
*/
type record ZoneLocationEventSubscription {
Json.String subscriptionType,
Json.String clientCorrelator optional,
CallbackReference callbackReference optional,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links_ optional,
ZoneId zoneId,
LocationEventCriteria locationEventCriteria optional,
ReportingCtrl reportingCtrl optional,
TimeStamp expiryDeadline optional
} with {
variant (links_) "name as '_links'";
} // End of type ZoneLocationEventSubscription
/**
* @desc This type represents a subscription to the notifications from location server about the number of users reaching the threshold or the status of access points changing
* @member subscriptionType Shall be set to "UserLocationEventSubscription"
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference URI exposed by the client on which to receive notifications via HTTP
* @member requestTestNotification Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4]
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications
* @member _links Hyperlink related to the resource
* @member zoneId Identifier of zone (e.g. zone001) to monitor
* @member upperNumberOfUsersZoneThreshold Threshold number of users in a zone which if crossed upward shall cause a notification
* @member lowerNumberOfUsersZoneThreshold Threshold number of users in a zone which if crossed downward shall cause a notification
* @member upperNumberOfUsersAPThreshold Threshold number of users in an access point which if crossed upward shall cause a notification
* @member lowerNumberOfUsersAPThresholdThreshold number of users in an access point which ifcrossed downward shall cause a notification
* @member operationStatus List of operation status values to generate notifications for (these apply to all access points within a zone)
* @member reportingCtrl Provides parameters that ctrl the reporting
* @member expiryDeadline The expiration time of the subscription determined by the UE Location Subscribe Service
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.7 Type: ZoneStatusSubscription
*/
type record ZoneStatusSubscription {
Json.String subscriptionType,
Json.String clientCorrelator optional,
CallbackReference callbackReference optional,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links_ optional,
ZoneId zoneId,
Json.UInteger upperNumberOfUsersZoneThreshold optional,
Json.UInteger lowerNumberOfUsersZoneThreshold optional,
Json.UInteger upperNumberOfUsersAPThreshold optional,
Json.UInteger lowerNumberOfUsersAPThreshold optional,
OperationStatus operationStatus optional,
ReportingCtrl reportingCtrl optional,
TimeStamp expiryDeadline optional
} with {
variant (links_) "name as '_links'";
} // End of type ZoneStatusSubscription
/**
* @desc This type represents a subscription to the notifications from location server about user location events happened in the area.
* @member subscriptionType Shall be set to "UserLocationEventSubscription"
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference URI exposed by the client on which to receive notifications via HTTP
* @member requestTestNotification Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4]
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications
* @member _links Hyperlink related to the resource
* @member areaDefine The parameters describing the area to subscribe
* @member trackingAccuracy Number of meters of acceptable error
* @member reportingCtrl Provides parameters that ctrl the reporting
* @member locationEventCriteria List of user event values to generate notifications for (these apply to address specified)
* @member reportingLocationReq This IE shall be set to true if a location estimate is required for each event report
* @member expiryDeadline The expiration time of the subscription determined by the UE Location Subscribe Service
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.8 Type: UserAreaSubscription
*/
type record UserAreaSubscription {
Json.String subscriptionType,
Json.String clientCorrelator optional,
CallbackReference callbackReference optional,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links_ optional,
AreaInfo areaDefine,
Json.Number trackingAccuracy,
LocationEventCriteria locationEventCriteria optional,
ReportingCtrl reportingCtrl optional,
Json.Bool reportingLocationReq optional,
TimeStamp expiryDeadline optional
} with {
variant (links_) "name as '_links'";
} // End of type UserAreaSubscription
/**
* @desc This type represents a subscription to the notifications from location server about changes in the geographical relationships between monitored users or between monitored users and reference users
* @member subscriptionType Shall be set to "UserLocationEventSubscription"
* @member clientCorrelator A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server
* @member callbackReference URI exposed by the client on which to receive notifications via HTTP
* @member requestTestNotification Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4]
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications
* @member _links Hyperlink related to the resource
* @member referenceAddress If specified, indicates address of each user that will be used as reference users from which the distances towards monitored users indicated in the Addresses will be monitored
* @member monitoredAddress Contains addresses of users to monitor (e.g. 'sip' URI, 'tel' URI, 'acr' URI). Reference to a group could be provided here if supported by implementation
* @member distance Distance between users that shall be monitored. The unit is meter
* @member trackingAccuracy Number of meters of acceptable error in tracking distance
* @member criteria Indicates whether the notification should occur when the geographical relationship between monitored and referenced users' changes
* @member checkImmediate Check location immediately after establishing notification
* @member reportingCtrl Provides parameters that ctrl the reporting
* @member locationEventCriteria List of user event values to generate notifications for (these apply to address specified)
* @member expiryDeadline The expiration time of the subscription determined by the UE Location Subscribe Service
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.3.9 Type: UserDistanceSubscription
*/
type record UserDistanceSubscription {
Json.String subscriptionType,
Json.String clientCorrelator optional,
CallbackReference callbackReference optional,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links_ optional,
Json.AnyURI referenceAddress optional,
Json.AnyURIArray monitoredAddress,
Json.Number distance,
Json.Number trackingAccuracy,
DistanceCriteria criteria,
Json.Bool checkImmediate,
ReportingCtrl reportingCtrl optional,
TimeStamp expiryDeadline optional
} with {
variant (links_) "name as '_links'";
} // End of type UserDistanceSubscription
/**
* @desc This type represents a test notification from a location server to determine if the Websocket method is to be utilized for the location server to issue notifications for a subscription, as defined in clause 6.12a of ETSI GS MEC 009 [4]
* @member notificationType Shall be set to "TestNotification"
* @member _links Hyperlink related to the resource
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.3 Type: TestNotification
*/
type record TestNotification {
Json.String notificationType,
LinksSubscription links_
} with {
variant (links_) "name as '_links'";
}
type record of TerminalLocation TerminalLocationList
/**
* @desc A type containing the notification subscription
* @member callbackData CallbackData if passed by the application in the receiptRequest element during the associated subscription operation
* @member link Link to other resources that are in relationship with the resource
* @member isFinalNotification Set to true if it is a final notification about location change
* @member terminalLocation Collection of the terminal locations
* @desc Hyperlink related to the resource
* @member Identifying the subscription for the test notification
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.3 Type: TestNotification
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.4 Type: UserLocationEventNotification
*/
type record SubscriptionNotification {
CallbackData callbackData optional,
DistanceCriteria distanceCriteria optional,
Json.Bool isFinalNotification optional,
Link link optional,
TerminalLocationList terminalLocation
type record LinksSubscription {
LinkType subscription
}
/**
* @desc A type containing the subscription cancellation notification
* @member address_ Address of terminal if the error applies to an individual terminal
* @member callbackData CallbackData if passed by the application in the receiptRequest element during the associated subscription operation
* @member link Link to other resources that are in relationship with the resource
* @member reason Used to indicate a notification termination or cancellation
* @desc This type represents a notification from location server with regards to UE location event.
* @member notificationType Shall be set to "UserLocationEventNotification"
* @member timeStamp TimeStamp
* @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member userLocationEvent The specific event triggering this notification
* @member locationInfo The geographical coordinates where the user is
* @member civicInfo Contextual information of a user location
* @member relativeLocationInfo The relative location in a reference system
* @member zoneId The identity of the zone
* @member accessPointId The identity of the access point
* @member _links Object containing hyperlinks related to the resource
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.4 Type: UserLocationEventNotification
*/
type record SubscriptionCancellationNotification {
type record UserLocationEventNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Address address_,
CallbackData callbackData optional,
Link link optional,
ServiceError reason
LocationEventType userLocationEvent,
LocationInfo locationInfo optional,
CivicAddress civicInfo optional,
RelativeLocationInfo relativeLocationInfo optional,
ZoneId zoneId optional,
AccessPointId accessPointId optional,
Links links_
} with {
variant (links_) "name as '_links'";
variant (address_) "name as 'address'";
}
} // End of type UserLocationEventNotification
/**
* @desc This type contains a list of subscriptions
* @member zonalTrafficSubscription Collection of ZonalTrafficSubscription elements
* @member userTrackingSubscription Collection of UserTrackingSubscription elements
* @member periodicTrackingSubscription Collection of PeriodicNotificationSubscription elements
* @member zoneStatusSubscription Collection of ZoneStatusSubscription elements
* @member circleNotificationSubscription Collection of CircleNotificationSubscription elements
* @member distanceNotificationSubscription Collection of DistanceNotificationSubscription elements
* @member resourceURL Self-referring URL
* @ see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.3.3 Type: NotificationSubscriptionList
* @desc This type represents a notification from location server with regards to UE location periodic reporting.
* @member notificationType Shall be set to "UserLocationPeriodicNotification"
* @member timeStamp TimeStamp
* @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member userLocationEvent The specific event triggering this notification
* @member locationInfo The geographical coordinates where the user is
* @member civicInfo Contextual information of a user location
* @member relativeLocationInfo The relative location in a reference system
* @member zoneId The identity of the zone
* @member accessPointId The identity of the access point
* @member isFinalNotification Shall be set to true if it is a final notification
* @member _links Object containing hyperlinks related to the resource
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.5 Type: UserLocationPeriodicNotification
*/
type record NotificationSubscriptionList {
ZonalTrafficSubscription zonalTrafficSubscription optional,
UserTrackingSubscription userTrackingSubscription optional,
PeriodicTrackingSubscription periodicTrackingSubscription optional,
ZoneStatusSubscription zoneStatusSubscription optional,
CircleNotificationSubscription circleNotificationSubscription optional,
DistanceNotificationSubscription distanceNotificationSubscription optional,
ResourceURL resourceURL
type record UserLocationPeriodicNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Address address_,
LocationEventType userLocationEvent,
LocationInfo locationInfo optional,
CivicAddress civicInfo optional,
RelativeLocationInfo relativeLocationInfo optional,
ZoneId zoneId optional,
AccessPointId accessPointId optional,
Json.Bool isFinalNotification optional,
Links links_
} with {
variant (links_) "name as '_links'";
variant (address_) "name as 'address'";
} // End of type UserLocationPeriodicNotification
/**
* @desc This type represents a notification from location server with regards to UE location periodic reporting.
* @member notificationType Shall be set to "ZoneLocationEventNotification"
* @member timeStamp TimeStamp
* @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member userLocationEvent The specific event triggering this notification
* @member zoneId The identity of the zone
* @member _links Object containing hyperlinks related to the resource
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.6 Type: ZoneLocationEventNotification
*/
type record ZoneLocationEventNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Address address_,
LocationEventType userLocationEvent,
ZoneId zoneId optional,
Links links_
} with {
variant (links_) "name as '_links'";
variant (address_) "name as 'address'";
} // End of type ZoneLocationEventNotification
/**
* @desc This type represents a notification from location server with regards to status changing event or user number threshold event happened in a zone
* @member notificationType Shall be set to "ZoneStatusNotification"
* @member timeStamp TimeStamp
* @member userNumEvent
* @member operationStatus The specific event triggering this notification
* @member zoneId The identity of the zone
* @member accessPointId The identity of the access point
* @member _links Object containing hyperlinks related to the resource
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.7 Type: ZoneStatusNotification
*/
type record ZoneStatusNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
UserNumEvent userNumEvent optional,
OperationStatus operationStatus optional,
ZoneId zoneId optional,
AccessPointId accessPointId optional,
Links links_
} with {
variant (links_) "name as '_links'";
} // End of type ZoneStatusNotification
type enumerated UserNumEvent {
OVER_ZONE_UPPER_THD,
UNDER_ZONE_LOWER_THD,
OVER_AP_UPPER_THD,
UNDER_AP_LOWER_THD
} with {
variant "JSON: as number"
}
/**
* @desc This type represents a notification from location server with regards to UE location events happened in an area.
* @member notificationType Shall be set to "UserAreaNotification"
* @member timeStamp TimeStamp
* @member address_ Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)
* @member locationInfo The geographical coordinates where the user is
* @member civicInfo Contextual information of a user location
* @member relativeLocationInfo The relative location in a reference system
* @member userLocationEvent The specific event triggering this notification
* @member _links Object containing hyperlinks related to the resource
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.8 Type: UserAreaNotification
*/
type record UserAreaNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Address address_,
LocationInfo locationInfo optional,
CivicAddress civicInfo optional,
RelativeLocationInfo relativeLocationInfo optional,
LocationEventType userLocationEvent,
Links links_
} with {
variant (links_) "name as '_links'";
variant (address_) "name as 'address'";
} // End of type UserAreaNotification
/**
* @desc This type represents a notification from location server with regards to UE location events happened in an area.
* @member notificationType Shall be set to "UserDistanceNotification"
* @member timeStamp TimeStamp
* @member monitoredUsers Indicates the location information related to monitored users
* @member distanceEvent Indicates the distance event triggering the notification
* @member _links Object containing hyperlinks related to the resource
* @see ETSI GS MEC 013 V3.1.1 (2023-01) Clause 6.4.9 Type: UserDistanceNotification
*/
type record UserDistanceNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
UserList monitoredUsers,
DistanceCriteria distanceEvent,
Links links_
} with {
variant (links_) "name as '_links'";
} // End of type UserDistanceNotification
} with {
encode "JSON"
} // End of module LocationAPI_TypesAndValues
{
"swagger": "2.0",
"info": {
"description": "The ETSI MEC ISG MEC012 Radio Network Information API described using OpenAPI",
"version": "1.1.1",
"title": "RNI API",
"license": {
"name": "ETSI Forge copyright notice",
"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
}
},
"externalDocs": {
"description": "ETSI GS MEC012 Radio Network Information API, V1.1.1",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/01.01.01_60/gs_mec012v010101p.pdf"
},
"host": "127.0.0.1:8081",
"basePath": "/rni/v1",
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"security": [
{
"OauthSecurity": [
"all"
]
}
],
"securityDefinitions": {
"OauthSecurity": {
"type": "oauth2",
"flow": "application",
"tokenUrl": "https://oauth.exampleAPI/token",
"scopes": {
"all": "Single oauth2 scope for API"
}
}
},
"parameters": {
"Body.CellChangeSubscriptionPost": {
"name": "CellChangeSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to cell change notifications based on the\n filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CellChangeSubscription": {
"$ref": "#/definitions/CellChangeSubscriptionPost"
}
}
}
},
"Body.CellChangeSubscription": {
"name": "CellChangeSubscription",
"in": "body",
"description": "Use to creates a subscription to cell change notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CellChangeSubscription": {
"$ref": "#/definitions/CellChangeSubscription"
}
}
}
},
"Body.S1BearerSubscriptionPost": {
"name": "S1BearerSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to S1 Bearer notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"S1BearerSubscription": {
"$ref": "#/definitions/S1BearerSubscriptionPost"
}
}
}
},
"Body.S1BearerSubscription": {
"name": "S1BearerSubscription",
"in": "body",
"description": "Use to creates a subscription to S1 Bearer notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"S1BearerSubscription": {
"$ref": "#/definitions/S1BearerSubscription"
}
}
}
},
"Body.MeasTaSubscriptionPost": {
"name": "MeasTaSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to UE Timing Advance notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasTaSubscription": {
"$ref": "#/definitions/MeasTaSubscriptionPost"
}
}
}
},
"Body.MeasTaSubscription": {
"name": "MeasTaSubscription",
"in": "body",
"description": "Use to creates a subscription to UE Timing Advance notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasTaSubscription": {
"$ref": "#/definitions/MeasTaSubscription"
}
}
}
},
"Body.MeasRepUeSubscriptionPost": {
"name": "MeasRepUeSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to UE measurement report notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasRepUeSubscription": {
"$ref": "#/definitions/MeasRepUeSubscriptionPost"
}
}
}
},
"Body.MeasRepUeSubscription": {
"name": "MeasRepUeSubscription",
"in": "body",
"description": "Use to creates a subscription to UE measurement report notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"MeasRepUeSubscription": {
"$ref": "#/definitions/MeasRepUeSubscription"
}
}
}
},
"Body.RabEstSubscriptionPost": {
"name": "RabEstSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to RAB establishment notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabEstSubscription": {
"$ref": "#/definitions/RabEstSubscriptionPost"
}
}
}
},
"Body.RabEstSubscription": {
"name": "RabEstSubscription",
"in": "body",
"description": "Use to creates a subscription to RAB establishment notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabEstSubscription": {
"$ref": "#/definitions/RabEstSubscription"
}
}
}
},
"Body.RabModSubscriptionPost": {
"name": "RabEstSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to RAB Modification notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabModSubscription": {
"$ref": "#/definitions/RabModSubscriptionPost"
}
}
}
},
"Body.RabModSubscription": {
"name": "RabEstSubscription",
"in": "body",
"description": "Use to creates a subscription to RAB Modification notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabModSubscription": {
"$ref": "#/definitions/RabModSubscription"
}
}
}
},
"Body.RabRelSubscriptionPost": {
"name": "RabRelSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to RAB Release notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabRelSubscription": {
"$ref": "#/definitions/RabRelSubscriptionPost"
}
}
}
},
"Body.RabRelSubscription": {
"name": "RabRelSubscription",
"in": "body",
"description": "Use to creates a subscription to RAB Release notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"RabRelSubscription": {
"$ref": "#/definitions/RabRelSubscription"
}
}
}
},
"Body.CaReConfSubscriptionPost": {
"name": "CaReConfSubscriptionPost",
"in": "body",
"description": "Use to creates a subscription to Carrier Aggregation Reconfiguration notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CaReConfSubscription": {
"$ref": "#/definitions/CaReConfSubscriptionPost"
}
}
}
},
"Body.CaReConfSubscription": {
"name": "CaReConfSubscription",
"in": "body",
"description": "Use to creates a subscription to Carrier Aggregation Reconfiguration notifications based on the filter criteria",
"required": true,
"schema": {
"type": "object",
"properties": {
"CaReConfSubscription": {
"$ref": "#/definitions/CaReConfSubscription"
}
}
}
},
"Path.subscrId": {
"name": "subscriptionId",
"in": "path",
"description": "Subscription Id, specifically the \"self\" returned in the subscription request",
"required": true,
"type": "string",
"format": "uri"
},
"Query.AppInsId": {
"name": "app_ins_id",
"in": "query",
"description": "Application instance identifier",
"required": false,
"type": "string"
},
"Query.AppInsIdArr": {
"name": "app_ins_id",
"in": "query",
"description": "Application instance identifier",
"required": true,
"type": "array",
"items": {
"type": "string"
}
},
"Query.UeIpv4Address": {
"name": "ue_ipv4_address",
"in": "query",
"description": "Comma separated list of IE IPv4 addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.UeIpv6Address": {
"name": "ue_ipv6_address",
"in": "query",
"description": "Comma separated list of IE IPv6 addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.NatedIpAddress": {
"name": "nated_ip_address",
"in": "query",
"description": "Comma separated list of IE NATed IP addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.GtpTeId": {
"name": "gtp_teid",
"in": "query",
"description": "Comma separated list of GTP TEID addresses as defined for the type for AssociateId",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.CellId": {
"name": "cell_id",
"in": "query",
"description": "E-UTRAN Cell Identity as a bit string (size (28)), as defined in ETSI TS 136 413",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.ErabGbrDl": {
"name": "erab_gbr_dl",
"in": "query",
"description": "Guaranteed downlink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabGbrUl": {
"name": "erab_gbr_ul",
"in": "query",
"description": "Guaranteed uplink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabId": {
"name": "erab_id",
"in": "query",
"description": "E-RAB identifier",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabIdArr": {
"name": "erab_id",
"in": "query",
"description": "E-RAB identifier",
"required": false,
"type": "array",
"items": {
"type": "integer",
"format": "uint32"
}
},
"Query.ErabMbrDl": {
"name": "erab_mbr_dl",
"in": "query",
"description": "Maximum downlink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.ErabMbrUl": {
"name": "erab_mbr_ul",
"in": "query",
"description": "Maximum uplink E-RAB Bit Rate as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.Qci": {
"name": "qci",
"in": "query",
"description": "QoS Class Identifier as defined in ETSI TS 123 401",
"required": false,
"type": "integer",
"format": "uint32"
},
"Query.TempUeId": {
"name": "temp_ue_id",
"in": "query",
"description": "The temporary identifier allocated for the specific UE as defined in ETSI TS 136 413",
"required": false,
"type": "array",
"items": {
"type": "string"
}
}
},
"paths": {
"/resources/rab_info": {
"get": {
"description": "Gets information on existing E-RABs that are associated with a specific mobile edge application instance",
"operationId": "rab_infoGET",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Query.AppInsId"
},
{
"$ref": "#/parameters/Query.CellId"
},
{
"$ref": "#/parameters/Query.UeIpv4Address"
},
{
"$ref": "#/parameters/Query.UeIpv6Address"
},
{
"$ref": "#/parameters/Query.NatedIpAddress"
},
{
"$ref": "#/parameters/Query.GtpTeId"
},
{
"$ref": "#/parameters/Query.ErabId"
},
{
"$ref": "#/parameters/Query.Qci"
},
{
"$ref": "#/parameters/Query.ErabMbrDl"
},
{
"$ref": "#/parameters/Query.ErabMbrUl"
},
{
"$ref": "#/parameters/Query.ErabGbrDl"
},
{
"$ref": "#/parameters/Query.ErabGbrUl"
}
],
"responses": {
"200": {
"description": "Successful response to rab_info request",
"schema": {
"type": "object",
"required": [
"RabInfo"
],
"properties": {
"RabInfo": {
"$ref": "#/definitions/RabInfo"
}
}
},
"examples": {
"application/json": {
"RabInfo": {
"timeStamp": {
"seconds": 1577836800,
"nanoSeconds": 0
},
"appInId": "01",
"requestId": "01",
"cellUserInfo": {
"ecgi": {
"plmn": {
"mcc": "001",
"mnc": "01"
},
"cellId": "0x800000A"
},
"ueInfo": {
"associateId": null,
"type": "1",
"value": "192.0.2.0",
"erabInfo": {
"erabId": 10
},
"erabQosParameters": {
"qci": 7,
"qosInformation": {
"erabMbrDl": 10,
"erabMbrUl": 10,
"erabGbrDl": 10,
"erabGbrUl": 10
}
}
}
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/resources/plmn_info": {
"get": {
"description": "Gets the information on Mobile Network(s) that are associated with a specific mobile edge application instance",
"operationId": "plmn_infoGET",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Query.AppInsIdArr"
}
],
"responses": {
"200": {
"description": "Successful response to rab_info request",
"schema": {
"type": "object",
"properties": {
"PlmnInfo": {
"$ref": "#/definitions/PlmnInfo"
}
}
},
"examples": {
"application/json": {
"PlmnInfo": {
"timeStamp": {
"seconds": 1577836800,
"nanoSeconds": 0
},
"appInId": "01",
"ecgi": {
"plmn": {
"mcc": "001",
"mnc": "01"
},
"cellId": "0x800000A"
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/resources/s1_bearer_info": {
"get": {
"description": "Gets information on existing E-RABs that are associated with a specific mobile edge application instance",
"operationId": "s1_bearer_infoGET",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Query.TempUeId"
},
{
"$ref": "#/parameters/Query.UeIpv4Address"
},
{
"$ref": "#/parameters/Query.UeIpv6Address"
},
{
"$ref": "#/parameters/Query.NatedIpAddress"
},
{
"$ref": "#/parameters/Query.GtpTeId"
},
{
"$ref": "#/parameters/Query.CellId"
},
{
"$ref": "#/parameters/Query.ErabIdArr"
}
],
"responses": {
"200": {
"description": "Successful response to s1_bearer_info request",
"schema": {
"type": "object",
"required": [
"S1BearerInfo"
],
"properties": {
"S1BearerInfo": {
"$ref": "#/definitions/S1BearerInfo"
}
}
},
"examples": {
"application/json": {
"S1BearerInfo": {
"timeStamp": {
"seconds": 1577836800,
"nanoSeconds": 0
},
"s1UeInfo": [
{
"tempUeId": {
"mmec": "0",
"mtmsi": "1234"
},
"associateId": [
{
"type": "1",
"value": "192.0.2.0"
},
{
"type": "3",
"value": "198.51.100.0"
}
],
"ecgi": {
"plmn": {
"mcc": "001",
"mnc": "01"
},
"cellId": "0x800000A"
},
"s1BearerInfoDetailed": [
{
"erabId": 1,
"s1EnbInfo": {
"ipAddress": "192.0.2.0",
"tunnelId": "1111"
},
"sGwInfo": {
"ipAddress": "192.0.2.1",
"tunnelId": "2222"
}
}
]
},
{
"tempUeId": {
"mmec": "0",
"mtmsi": "1234"
},
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"ecgi": {
"plmn": {
"mcc": "001",
"mnc": "01"
},
"cellId": "0x800000B"
},
"s1BearerInfoDetailed": [
{
"erabId": 2,
"s1EnbInfo": {
"ipAddress": "192.0.2.0",
"tunnelId": "3333"
},
"sGwInfo": {
"ipAddress": "192.0.2.1",
"tunnelId": "4444"
}
}
]
}
]
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/": {
"get": {
"description": "The GET method can be used to request information about the subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/cell_change/77777",
"subscriptionType": "CELL_CHANGE"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/MeasTa/77777",
"subscriptionType": "MEAS_TIMING_ADVANCE"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/cell_change": {
"get": {
"description": "The GET method can be used to request information about the cell_change subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_cc_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors cell_change subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/cell_change",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/cell_change/77777",
"subscriptionType": "CELL_CHANGE"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/cell_change/77778",
"subscriptionType": "CELL_CHANGE"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to cell change notifications from Radio Network Information Service",
"operationId": "CellChange_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.CellChangeSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to response to UE cell change notifications",
"schema": {
"type": "object",
"properties": {
"CellChangeSubscription": {
"$ref": "#/definitions/CellChangeSubscription"
}
}
},
"examples": {
"application/json": {
"CellChangeSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/cell_change/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/cell_change/sub123"
},
"filterCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"appInsId": "01",
"trigger": 6,
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/cell_change/{subscriptionId}": {
"get": {
"description": "Get cell change subscription information",
"operationId": "CellChange_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding cell change notifications",
"schema": {
"type": "object",
"required": [
"CellChangeSubscription"
],
"properties": {
"CellChangeSubscription": {
"$ref": "#/definitions/CellChangeSubscription"
}
}
},
"examples": {
"application/json": {
"CellChangeSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/cell_change/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/cell_change/sub123"
},
"filterCriteria": {
"appInsId": "01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"hoStatus": 3
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to cell change notifications from Radio Network Information Service",
"operationId": "CellChange_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.CellChangeSubscription"
},
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to cell change notifications",
"schema": {
"type": "object",
"properties": {
"CellChangeSubscription": {
"$ref": "#/definitions/CellChangeSubscription"
}
}
},
"examples": {
"application/json": {
"CellChangeSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/cell_change/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/cell_change/sub123"
},
"filterCriteria": {
"appInsId": "01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"hoStatus": 3
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "CellChange_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content"
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/s1_bearer": {
"get": {
"description": "The GET method can be used to request information about the s1_bearer subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_s1_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors s1_bearer subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/s1_bearer",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/s1_bearer/77777",
"subscriptionType": "S1_BEARER"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/s1_bearer/77778",
"subscriptionType": "S1_BEARER"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to S1 bearer notifications from Radio Network Information Service",
"operationId": "S1BearerSubscription_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.S1BearerSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to response to S1 Bearer notifications",
"schema": {
"type": "object",
"properties": {
"S1BearerSubscription": {
"$ref": "#/definitions/S1BearerSubscription"
}
}
},
"examples": {
"application/json": {
"S1BearerSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/s1_bearer/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/s1_bearer/sub123"
},
"eventType": 1,
"s1BearerSubscriptionCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"erabId": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/s1_bearer/{subscriptionId}": {
"get": {
"description": "Gets a subscription to S1 bearer notifications from Radio Network Information Service",
"operationId": "S1BearerSubscription_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to S1 Bearer notifications",
"schema": {
"type": "object",
"properties": {
"S1BearerSubscription": {
"$ref": "#/definitions/S1BearerSubscription"
}
}
},
"examples": {
"application/json": {
"S1BearerSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/s1_bearer/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/s1_bearer/sub123"
},
"eventType": 1,
"s1BearerSubscriptionCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"erabId": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to S1 bearer notifications from Radio Network Information Service",
"operationId": "S1BearerSubscription_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
},
{
"$ref": "#/parameters/Body.S1BearerSubscription"
}
],
"responses": {
"200": {
"description": "Successful subscription update to response to S1 Bearer notifications",
"schema": {
"type": "object",
"properties": {
"S1BearerSubscription": {
"$ref": "#/definitions/S1BearerSubscription"
}
}
},
"examples": {
"application/json": {
"S1BearerSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/s1_bearer/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/s1_bearer/sub123"
},
"eventType": 1,
"s1BearerSubscriptionCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"erabId": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "S1Bearer_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content"
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/ta": {
"get": {
"description": "The GET method can be used to request information about the ta subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_ta_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors ta subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ta",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/ta/77777",
"subscriptionType": "MEAS_REPORT_UE"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/ta/77778",
"subscriptionType": "MEAS_REPORT_UE"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to UE Timing Advance notifications from Radio Network Information Service",
"operationId": "MeasTa_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.MeasTaSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to response to UE Timing Advance notifications",
"schema": {
"type": "object",
"properties": {
"MeasTaSubscription": {
"$ref": "#/definitions/MeasTaSubscription"
}
}
},
"examples": {
"application/json": {
"MeasTaSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/ta/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ta/sub123"
},
"filterCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"appInsId": "01",
"trigger": 6,
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/ta/{subscriptionId}": {
"get": {
"description": "Gets UE Timing Advance subscription information from Radio Network Information Service",
"operationId": "MeasTa_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding UE Timing Advance notifications",
"schema": {
"type": "object",
"required": [
"MeasTaSubscription"
],
"properties": {
"MeasTaSubscription": {
"$ref": "#/definitions/MeasTaSubscription"
}
}
},
"examples": {
"application/json": {
"MeasTaSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/ta/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ta/sub123"
},
"filterCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"appInsId": "01",
"trigger": 6,
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to UE Timing Advance notifications from Radio Network Information Service",
"operationId": "MeasTa_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
},
{
"$ref": "#/parameters/Body.MeasTaSubscription"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to UE Timing Advance notifications",
"schema": {
"type": "object",
"properties": {
"MeasTaSubscription": {
"$ref": "#/definitions/MeasTaSubscription"
}
}
},
"examples": {
"application/json": {
"MeasTaSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/ta/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ta/sub123"
},
"filterCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"appInsId": "01",
"trigger": 6,
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "MeasTa_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content"
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/meas_rep_ue": {
"get": {
"description": "The GET method can be used to request information about the meas_rep_ue subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_mr_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors meas_rep_ue subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/meas_rep_ue",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/meas_rep_ue/77777",
"subscriptionType": "MEAS_REPORT_UE"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/meas_rep_ue/77778",
"subscriptionType": "MEAS_REPORT_UE"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to UE measurement report notifications from Radio Network Information Service",
"operationId": "MeasRepUe_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.MeasRepUeSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to response to UE measurement report notifications",
"schema": {
"type": "object",
"properties": {
"MeasRepUeSubscription": {
"$ref": "#/definitions/MeasRepUeSubscription"
}
}
},
"examples": {
"application/json": {
"MeasRepUeSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/meas_rep_ue/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/meas_rep_ue/sub123"
},
"filterCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"appInsId": "01",
"trigger": 6,
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/meas_rep_ue/{subscriptionId}": {
"get": {
"description": "Gets a subscription to UE measurement report notifications from Radio Network Information Service",
"operationId": "MeasRepUe_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription to response to UE measurement report notifications",
"schema": {
"type": "object",
"required": [
"MeasRepUeSubscription"
],
"properties": {
"MeasRepUeSubscription": {
"$ref": "#/definitions/MeasRepUeSubscription"
}
}
},
"examples": {
"application/json": {
"MeasRepUeSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/meas_rep_ue/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/meas_rep_ue/sub123"
},
"filterCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"appInsId": "01",
"trigger": 6,
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to UE measurement report notifications from Radio Network Information Service",
"operationId": "MeasRepUeReport_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
},
{
"$ref": "#/parameters/Body.MeasRepUeSubscription"
}
],
"responses": {
"200": {
"description": "Successful update subscription to response to UE measurement report notifications",
"schema": {
"type": "object",
"properties": {
"MeasRepUeSubscription": {
"$ref": "#/definitions/MeasRepUeSubscription"
}
}
},
"examples": {
"application/json": {
"MeasRepUeSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/meas_rep_ue/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/meas_rep_ue/sub123"
},
"filterCriteria": {
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"appInsId": "01",
"trigger": 6,
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "MeasRepUe_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content. Successful deletion of UE Measurment Report subscription"
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/rab_est": {
"get": {
"description": "The GET method can be used to request information about the rab_est subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_re_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors rab_est subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_est",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/rab_est/77777",
"subscriptionType": "RAB_ESTABLISHMENT"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/rab_est/77778",
"subscriptionType": "RAB_ESTABLISHMENT"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to RAB establishment notifications from Radio Network Information Service",
"operationId": "RabEstSubscription_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.RabEstSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to RAB establishment notifications",
"schema": {
"type": "object",
"properties": {
"RabEstSubscription": {
"$ref": "#/definitions/RabEstSubscription"
}
}
},
"examples": {
"application/json": {
"RabEstSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_est/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_est/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/rab_est/{subscriptionId}": {
"get": {
"description": "Gets a subscription to RAB establishment notifications from Radio Network Information Service",
"operationId": "RabEstSubscription_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding RAB establishment notifications",
"schema": {
"type": "object",
"required": [
"RabEstSubscription"
],
"properties": {
"RabEstSubscription": {
"$ref": "#/definitions/RabEstSubscription"
}
}
},
"examples": {
"application/json": {
"RabEstSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_est/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_est/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to RAB establishment notifications from Radio Network Information Service",
"operationId": "RabEstSubscription_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
},
{
"$ref": "#/parameters/Body.RabEstSubscription"
}
],
"responses": {
"200": {
"description": "Successful subscription update to RAB establishment notifications",
"schema": {
"type": "object",
"properties": {
"RabEstSubscription": {
"$ref": "#/definitions/RabEstSubscription"
}
}
},
"examples": {
"application/json": {
"RabEstSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_est/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_est/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "RabEst_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content. Successful deletion of Rab Establishment subscription"
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/rab_mod": {
"get": {
"description": "The GET method can be used to request information about the rab_mod subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_rm_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors rab_mod subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_mod",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/rab_mod/77777",
"subscriptionType": "RAB_MODIFICATION"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/rab_mod/77778",
"subscriptionType": "RAB_MODIFICATION"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to RAB Modification notifications from Radio Network Information Service",
"operationId": "RabModSubscription_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.RabModSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to RAB Modification notifications",
"schema": {
"type": "object",
"properties": {
"RabModSubscription": {
"$ref": "#/definitions/RabModSubscription"
}
}
},
"examples": {
"application/json": {
"RabModSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_mod/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_mod/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/rab_mod/{subscriptionId}": {
"get": {
"description": "Gets a subscription to RAB Modification notifications from Radio Network Information Service",
"operationId": "RabModSubscription_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding RAB Modification notifications",
"schema": {
"type": "object",
"required": [
"RabModSubscription"
],
"properties": {
"RabModSubscription": {
"$ref": "#/definitions/RabModSubscription"
}
}
},
"examples": {
"application/json": {
"RabModSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_mod/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_mod/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to RAB Modification notifications from Radio Network Information Service",
"operationId": "RabModSubscription_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
},
{
"$ref": "#/parameters/Body.RabModSubscription"
}
],
"responses": {
"200": {
"description": "Successful subscription update to RAB Modification notifications",
"schema": {
"type": "object",
"properties": {
"RabModSubscription": {
"$ref": "#/definitions/RabModSubscription"
}
}
},
"examples": {
"application/json": {
"RabModSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_mod/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_mod/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "RabMod_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content. Successful deletion of Rab Modification subscription"
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/rab_rel": {
"get": {
"description": "The GET method can be used to request information about the rab_rel subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_rr_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors rab_rel subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_rel",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/rab_rel/77777",
"subscriptionType": "RAB_RELEASE"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/rab_rel/77778",
"subscriptionType": "RAB_RELEASE"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to RAB Release notifications from Radio Network Information Service",
"operationId": "RabRelSubscription_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.RabRelSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to RAB Release notifications",
"schema": {
"type": "object",
"properties": {
"RabRelSubscription": {
"$ref": "#/definitions/RabRelSubscription"
}
}
},
"examples": {
"application/json": {
"RabRelSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_rel/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_rel/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/rab_rel/{subscriptionId}": {
"get": {
"description": "Gets a subscription to RAB Release notifications from Radio Network Information Service",
"operationId": "RabRelSubscription_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding RAB Release notifications",
"schema": {
"type": "object",
"required": [
"RabRelSubscription"
],
"properties": {
"RabRelSubscription": {
"$ref": "#/definitions/RabRelSubscription"
}
}
},
"examples": {
"application/json": {
"RabRelSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_rel/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_rel/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to RAB Release notifications from Radio Network Information Service",
"operationId": "RabRelSubscription_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
},
{
"$ref": "#/parameters/Body.RabRelSubscription"
}
],
"responses": {
"200": {
"description": "Successful subscription update to RAB Release notifications",
"schema": {
"type": "object",
"properties": {
"RabRelSubscription": {
"$ref": "#/definitions/RabRelSubscription"
}
}
},
"examples": {
"application/json": {
"RabRelSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/rab_rel/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/rab_rel/sub123"
},
"filterCriteriaAssocQci": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B",
"qci": 1
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "RabRel_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content. Successful deletion of Rab Release subscription"
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/ca_reconf": {
"get": {
"description": "The GET method can be used to request information about the ca_reconf subscriptions for this requestor",
"operationId": "SubscriptionLinkList_subscriptions_cr_GET",
"produces": [
"application/json",
"application/problem+json"
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors ca_reconf subscriptions.",
"schema": {
"type": "object",
"required": [
"SubscriptionLinkList"
],
"properties": {
"SubscriptionLinkList": {
"$ref": "#/definitions/SubscriptionLinkList"
}
}
},
"examples": {
"application/json": {
"SubscriptionLinkList": {
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ca_reconf",
"susbcription": [
{
"href": "http://meAppClient.example.com/rni/v1/notifications/ca_reconf/77777",
"subscriptionType": "CA_RECONF"
},
{
"href": "http://meAppClient.example.com/rni/v1/notifications/ca_reconf/77778",
"subscriptionType": "CA_RECONF"
}
]
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
},
"post": {
"description": "Creates a subscription to Carrier Aggregation Reconfiguration notifications from Radio Network Information Service",
"operationId": "CaReConfSubscription_subscriptionsPOST",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Body.CaReConfSubscriptionPost"
}
],
"responses": {
"201": {
"description": "Successful subscription to Carrier Aggregation Reconfiguration notifications",
"schema": {
"type": "object",
"properties": {
"CaReConfSubscription": {
"$ref": "#/definitions/CaReConfSubscription"
}
}
},
"examples": {
"application/json": {
"CaReConfSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/ca_reconf/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ca_reconf/sub123"
},
"filterCriteriaAssoc": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"415": {
"description": "Unsupported Media Type",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"x-swagger-router-controller": "Default"
}
},
"/subscriptions/ca_reconf/{subscriptionId}": {
"get": {
"description": "Gets a subscription to Carrier Aggregation Reconfiguration notifications from Radio Network Information Service",
"operationId": "CaReConfSubscription_subscriptionsGET",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding Carrier Aggregation Reconfiguration notifications",
"schema": {
"type": "object",
"required": [
"CaReConfSubscription"
],
"properties": {
"CaReConfSubscription": {
"$ref": "#/definitions/CaReConfSubscription"
}
}
},
"examples": {
"application/json": {
"CaReConfSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/ca_reconf/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ca_reconf/sub123"
},
"filterCriteriaAssoc": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"put": {
"description": "Updates a subscription to Carrier Aggregation Reconfiguration notifications from Radio Network Information Service",
"operationId": "CaReConfSubscription_subscriptionsPUT",
"produces": [
"application/json",
"application/problem+json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
},
{
"$ref": "#/parameters/Body.CaReConfSubscription"
}
],
"responses": {
"200": {
"description": "Successful subscription to Carrier Aggregation Reconfiguration notifications",
"schema": {
"type": "object",
"properties": {
"CaReConfSubscription": {
"$ref": "#/definitions/CaReConfSubscription"
}
}
},
"examples": {
"application/json": {
"CaReConfSubscription": {
"callbackReference": "http://meAppClient.example.com/rni/v1/notifications/ca_reconf/77777",
"_links": {
"self": "http://meAppServer.example.com/rni/v1/subscriptions/ca_reconf/sub123"
},
"filterCriteriaAssoc": {
"appInsId": "app01",
"associateId": {
"type": "1",
"value": "192.0.2.0"
},
"plmn": {
"mnc": "01",
"mcc": "001"
},
"cellId": "0x800000B"
},
"expiryDeadline": {
"seconds": 1577836800,
"nanoSeconds": 0
}
}
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"406": {
"description": "Not Acceptable",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
},
"examples": {
"application/problem+json": {
"ProblemDetails": {
"type": "https://meAppServer.example.com/rni/v1/probs/too-many-targets",
"title": "Too many targets",
"status": "422",
"detail": "The target area for the request is considered too large",
"instance": "/meAppClient.example.com/77777/msgs/abc"
}
}
}
},
"429": {
"description": "Too Many Requests",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"delete": {
"description": "Method to delete a subscription",
"operationId": "CaReConf_subscriptionsSubscrIdDELETE",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"description": "No Content"
}
},
"x-swagger-router-controller": "Default"
}
}
},
"definitions": {
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/Problem.type"
},
"title": {
"$ref": "#/definitions/Problem.title"
},
"status": {
"$ref": "#/definitions/Problem.status"
},
"detail": {
"$ref": "#/definitions/Problem.detail"
},
"instance": {
"$ref": "#/definitions/Problem.instance"
}
}
},
"Problem.type": {
"type": "string",
"format": "uri",
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
},
"Problem.title": {
"type": "string",
"description": "A short, human-readable summary of the problem type"
},
"Problem.status": {
"type": "integer",
"format": "uint32",
"description": "The HTTP status code for this occurrence of the problem"
},
"Problem.detail": {
"type": "string",
"description": "A human-readable explanation specific to this occurrence of the problem"
},
"Problem.instance": {
"type": "string",
"format": "uri",
"description": "A URI reference that identifies the specific occurrence of the problem"
},
"PlmnInfo": {
"type": "object",
"required": [
"appInsId",
"plmn"
],
"properties": {
"timeStamp": {
"$ref": "#/definitions/TimeStamp"
},
"appInsId": {
"$ref": "#/definitions/AppInsId"
},
"plmn": {
"type": "array",
"items": {
"$ref": "#/definitions/Plmn"
}
}
}
},
"RabInfo": {
"type": "object",
"required": [
"appInsId",
"requestId"
],
"properties": {
"timeStamp": {
"$ref": "#/definitions/TimeStamp"
},
"appInsId": {
"$ref": "#/definitions/AppInsId"
},
"requestId": {
"$ref": "#/definitions/RequestId"
},
"cellUserInfo": {
"type": "array",
"items": {
"$ref": "#/definitions/CellUserInfo"
}
}
}
},
"S1BearerInfo": {
"type": "object",
"required": [
"s1UeInfo"
],
"properties": {
"timeStamp": {
"$ref": "#/definitions/TimeStamp"
},
"s1UeInfo": {
"type": "array",
"items": {
"$ref": "#/definitions/S1UeInfo"
}
}
}
},
"S1UeInfo": {
"type": "object",
"required": [
"ecgi",
"s1BearerInfoDetailed"
],
"properties": {
"tempUeId": {
"type": "array",
"items": {
"$ref": "#/definitions/TempUeId"
}
},
"associateId": {
"type": "array",
"items": {
"$ref": "#/definitions/AssociateId"
}
},
"ecgi": {
"type": "array",
"items": {
"$ref": "#/definitions/Ecgi"
}
},
"s1BearerInfoDetailed": {
"type": "array",
"items": {
"$ref": "#/definitions/S1BearerInfoDetailed"
}
}
},
"description": "The information on users per cell."
},
"S1BearerInfoDetailed": {
"type": "object",
"required": [
"erabId",
"enbInfo",
"sGwInfo"
],
"properties": {
"erabId": {
"$ref": "#/definitions/ErabId"
},
"enbInfo": {
"$ref": "#/definitions/S1EnbInfo"
},
"sGwInfo": {
"$ref": "#/definitions/SGwInfo"
}
},
"description": "Information on UEs in the specific cell."
},
"ErabId": {
"type": "integer",
"format": "int32",
"description": "The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413",
"example": 10
},
"TempUeId": {
"type": "object",
"required": [
"mmec",
"mtmsi"
],
"properties": {
"mmec": {
"$ref": "#/definitions/Mmec"
},
"mtmsi": {
"$ref": "#/definitions/Mtmsi"
}
}
},
"Mmec": {
"type": "string",
"description": "MMEC as defined in ETSI TS 136 413",
"example": "0"
},
"Mtmsi": {
"type": "string",
"description": "M-TMSI as defined in ETSI TS 136 413",
"example": "1234"
},
"S1EnbInfo": {
"type": "object",
"required": [
"ipAddress",
"tunnelId"
],
"properties": {
"ipAddress": {
"type": "string",
"description": "eNB transport layer address of this S1 bearer.",
"example": "192.0.2.0"
},
"tunnelId": {
"type": "string",
"description": "eNB GTP-U TEID of this S1 bearer.",
"example": "1111"
}
}
},
"SGwInfo": {
"type": "object",
"required": [
"ipAddress",
"tunnelId"
],
"properties": {
"ipAddress": {
"type": "string",
"description": "SGW transport layer address of this S1 bearer.",
"example": "192.0.2.1"
},
"tunnelId": {
"type": "string",
"description": "SGW GTP-U TEID of this S1 bearer.",
"example": "2222"
}
}
},
"TimeStamp": {
"type": "object",
"required": [
"nanoSeconds",
"seconds"
],
"properties": {
"seconds": {
"type": "integer",
"format": "uint32",
"description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
"example": 1577836800
},
"nanoSeconds": {
"type": "integer",
"format": "uint32",
"description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
"example": 0
}
}
},
"AppInsId": {
"type": "string",
"format": "string",
"description": "Unique identifier for the mobile edge application instance",
"example": "01"
},
"RequestId": {
"type": "string",
"format": "string",
"description": "Unique identifier allocated by the Mobile Edge application for the Information request.",
"example": "01"
},
"CellUserInfo": {
"type": "object",
"required": [
"ecgi",
"ueInfo"
],
"properties": {
"ecgi": {
"$ref": "#/definitions/Ecgi"
},
"ueInfo": {
"type": "array",
"items": {
"$ref": "#/definitions/UeInfo"
}
}
},
"description": "The information on users per cell."
},
"Ecgi": {
"type": "object",
"required": [
"cellId",
"plmn"
],
"properties": {
"plmn": {
"$ref": "#/definitions/Plmn"
},
"cellId": {
"$ref": "#/definitions/CellId"
}
},
"description": "E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413"
},
"Plmn": {
"type": "object",
"required": [
"mcc",
"mnc"
],
"properties": {
"mcc": {
"type": "string",
"format": "string",
"description": "The Mobile Country Code part of PLMN Identity as defined in 3GPP TS 36.413",
"example": "001"
},
"mnc": {
"type": "string",
"format": "string",
"description": "The Mobile Network Code part of PLMN Identity as defined in 3GPP TS 36.413",
"example": "01"
}
}
},
"CellId": {
"type": "array",
"items": {
"type": "string",
"format": "binary"
},
"description": "The E-UTRAN Cell Identity as a bit string (size (28)), as defined in 3GPP TS 36.413",
"example": "0x800000A"
},
"UeInfo": {
"type": "object",
"required": [
"erabInfo"
],
"properties": {
"associateId": {
"type": "array",
"items": {
"$ref": "#/definitions/AssociateId"
}
},
"erabInfo": {
"type": "array",
"items": {
"$ref": "#/definitions/ErabQosParameters"
}
}
},
"description": "Information on UEs in the specific cell."
},
"AssociateId": {
"type": "object",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"RESERVED",
"UE_IPV4_ADDRESS",
"UE_IPV6_ADDRESS",
"NATED_IP_ADDRESS",
"GTP_TEID"
],
"description": "Numeric value (0-255) corresponding to specified type of identifier",
"example": "UE_IPV4_ADDRESS"
},
"value": {
"type": "String",
"format": "String",
"description": "Value for the identifier",
"example": "192.0.0.2"
}
}
},
"ErabQosParameters": {
"type": "object",
"properties": {
"qci": {
"$ref": "#/definitions/Qci"
},
"qosInformation": {
"type": "array",
"items": {
"$ref": "#/definitions/QosInformation"
}
}
}
},
"Qci": {
"type": "integer",
"format": "int32",
"description": "QoS Class Identifier as defined in TS 23.401",
"example": 7
},
"QosInformation": {
"type": "object",
"required": [
"erabGbrDl",
"erabGbrUl",
"erabMbrDl",
"erabMbrUl"
],
"properties": {
"erabMbrDl": {
"type": "integer",
"format": "int32",
"description": "This IE indicates the maximum downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer.",
"example": 10
},
"erabMbrUl": {
"type": "integer",
"format": "int32",
"description": "This IE indicates the maximum uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer.",
"example": 10
},
"erabGbrDl": {
"type": "integer",
"format": "int32",
"description": "This IE indicates the guaranteed downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer.",
"example": 10
},
"erabGbrUl": {
"type": "integer",
"format": "int32",
"description": "This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer.",
"example": 10
}
}
},
"SubscriptionLinkList": {
"type": "object",
"required": [
"_links"
],
"properties": {
"_links": {
"$ref": "#/definitions/Link"
},
"subscription": {
"type": "array",
"items": {
"$ref": "#/definitions/Subscription"
}
}
}
},
"MeasRepUeSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocTri"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"MeasRepUeSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocTri"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"S1BearerSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"s1BearerSubscriptionCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"eventType": {
"$ref": "#/definitions/EventType"
},
"s1BearerSubscriptionCriteria": {
"$ref": "#/definitions/S1BearerSubscriptionCriteria"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"S1BearerSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"s1BearerSubscriptionCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"eventType": {
"$ref": "#/definitions/EventType"
},
"s1BearerSubscriptionCriteria": {
"$ref": "#/definitions/S1BearerSubscriptionCriteria"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"RabEstSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocQci"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"RabEstSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocQci"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"RabModSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocQci"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"RabModSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocQci"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"RabRelSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocQci"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"RabRelSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocQci"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"CaReConfSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssoc"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"CaReConfSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssoc"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"CellChangeSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocHo"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"CellChangeSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssocHo"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"MeasTaSubscriptionPost": {
"type": "object",
"required": [
"callbackReference",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssoc"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"MeasTaSubscription": {
"type": "object",
"required": [
"callbackReference",
"_links",
"filterCriteria"
],
"properties": {
"callbackReference": {
"$ref": "#/definitions/CallbackReference"
},
"_links": {
"$ref": "#/definitions/Link"
},
"filterCriteria": {
"$ref": "#/definitions/FilterCriteriaAssoc"
},
"expiryDeadline": {
"$ref": "#/definitions/TimeStamp"
}
}
},
"CallbackReference": {
"type": "string",
"format": "uri",
"description": "URL selected by the Mobile Edge application to receive notifications on the subscribed RNIS information.",
"example": "http://meAppClient.example.com/rni/v1/"
},
"Link": {
"type": "object",
"properties": {
"self": {
"$ref": "#/definitions/LinkType"
}
},
"description": "List of hyperlinks related to the resource"
},
"LinkType": {
"description": "URI referring to a resource",
"type": "string",
"format": "uri",
"example": "http://meAppClient.example.com/rni/v1/"
},
"Subscription": {
"type": "object",
"required": [
"href",
"subscriptionType"
],
"properties": {
"href": {
"$ref": "#/definitions/LinkType"
},
"subscriptionType": {
"$ref": "#/definitions/SubscriptionType"
}
},
"description": "A link to a subscription."
},
"SubscriptionType": {
"type": "string",
"description": "Numeric value corresponding to specified type of subscription.",
"enum": [
"RESERVED",
"CELL_CHANGE",
"RAB_ESTABLISHMENT",
"RAB_MODIFICATION",
"RAB_RELEASE",
"MEAS_REPORT_UE",
"MEAS_TIMING_ADVANCE",
"CA_RECONF",
"S1_BEARE"
],
"example": "CELL_CHANGE"
},
"FilterCriteriaAssoc": {
"type": "object",
"properties": {
"appInsId": {
"$ref": "#/definitions/AppInsId"
},
"associateId": {
"$ref": "#/definitions/AssociateId"
},
"plmn": {
"$ref": "#/definitions/Plmn"
},
"cellId": {
"$ref": "#/definitions/CellId"
}
},
"description": "List of filtering criteria for the subscription."
},
"FilterCriteriaAssocQci": {
"type": "object",
"properties": {
"appInsId": {
"$ref": "#/definitions/AppInsId"
},
"associateId": {
"$ref": "#/definitions/AssociateId"
},
"plmn": {
"$ref": "#/definitions/Plmn"
},
"cellId": {
"$ref": "#/definitions/CellId"
},
"qci": {
"$ref": "#/definitions/Qci"
}
},
"description": "List of filtering criteria for the subscription."
},
"FilterCriteriaAssocHo": {
"type": "object",
"properties": {
"appInsId": {
"$ref": "#/definitions/AppInsId"
},
"associateId": {
"$ref": "#/definitions/AssociateId"
},
"plmn": {
"$ref": "#/definitions/Plmn"
},
"cellId": {
"$ref": "#/definitions/CellId"
},
"hoStatus": {
"$ref": "#/definitions/HoStatus"
}
},
"description": "List of filtering criteria for the subscription."
},
"FilterCriteriaAssocTri": {
"type": "object",
"properties": {
"appInsId": {
"$ref": "#/definitions/AppInsId"
},
"associateId": {
"$ref": "#/definitions/AssociateId"
},
"plmn": {
"$ref": "#/definitions/Plmn"
},
"cellId": {
"$ref": "#/definitions/CellId"
},
"trigger": {
"$ref": "#/definitions/Trigger"
}
},
"description": "List of filtering criteria for the subscription."
},
"S1BearerSubscriptionCriteria": {
"type": "object",
"properties": {
"associateId": {
"$ref": "#/definitions/AssociateId"
},
"plmn": {
"$ref": "#/definitions/Plmn"
},
"cellId": {
"$ref": "#/definitions/CellId"
},
"erabId": {
"$ref": "#/definitions/ErabId"
}
},
"description": "List of filtering criteria for the subscription."
},
"HoStatus": {
"type": "string",
"description": "Description of the subscribed to event",
"enum": [
"RESERVED",
"IN_PREPARATION",
"IN_EXECUTION",
"COMPLETED",
"REJECTED",
"CANCELLED"
],
"example": "COMPLETED"
},
"EventType": {
"type": "string",
"description": "Description of the subscribed event.",
"enum": [
"RESERVED",
"S1_BEARER_ESTABLISH",
"S1_BEARER_MODIFY",
"S1_BEARER_RELEASE"
],
"example": "S1_BEARER_ESTABLISH"
},
"Trigger": {
"type": "string",
"description": "Unique identifier for the mobile edge application instance",
"enum": [
"NOT_AVAILABLE",
"PERIODICAL_REPORT_STRONGEST_CELLS",
"PERIODICAL_REPORT_STRONGEST_CELLS_FOR_SON",
"PERIODICAL_REPORT_CGI",
"EVENT_A1",
"EVENT_A2",
"EVENT_A3",
"EVENT_A4",
"EVENT_A5",
"EVENT_A6",
"EVENT_B1",
"EVENT_B2",
"EVENT_C1",
"EVENT_C2",
"EVENT_W1",
"EVENT_W2",
"EVENT_W3"
],
"example": "EVENT_A3"
}
}
}
......@@ -13,7 +13,7 @@ module RnisAPI_Pixits {
modulepar Json.String PX_UNKNOWN_SUBSCRIPTION_ID := "0666";
modulepar Link PX_LINKS_SELF := { self_ := { href := "http://example.com/exampleAPI/rni/v2/subscriptions" } };
modulepar Links PX_LINKS_SELF := { self_ := { href := "http://example.com/exampleAPI/rni/v2/subscriptions" } };
modulepar charstring PX_CALLBACK_URI := "/";
......@@ -21,9 +21,9 @@ module RnisAPI_Pixits {
modulepar Json.String PX_ASSOCIATE_ID_VALUE := "192.0.0.2";
modulepar CellId PX_CELL_ID := "0x0800000A";
modulepar CellId PX_V2X_CELL_ID := "0x0800000A";
modulepar CellId PX_UNKNOWN_CELL_ID := "0x0800000A";
modulepar CellId PX_V2X_UNKNOWN_CELL_ID := "0x0800000A";
modulepar CellId PX_C_ID := "0xFFFFFFFF";
......
......@@ -59,11 +59,15 @@ module RnisAPI_Templates {
template (omit) CellChangeSubscription m_cell_change_subscription(
in template (value) CallbackReference p_callbackReference,
in template (value) FilterCriteriaAssocHo p_filterCriteriaAssocHo,
in template (omit) Link p_links := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) Links p_links := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "CellChangeSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaAssocHo := p_filterCriteriaAssocHo,
expiryDeadline := p_expiryDeadline
......@@ -72,7 +76,9 @@ module RnisAPI_Templates {
template (omit) CellChangeSubscription m_cell_change_subscription_wrong_subscription_type(
in template (value) CallbackReference p_callbackReference,
in template (value) FilterCriteriaAssocHo p_filterCriteriaAssocHo,
in template (omit) Link p_links := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) Links p_links := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) modifies m_cell_change_subscription := {
subscriptionType := "CellChangeSubscription_invalid"
......@@ -80,12 +86,16 @@ module RnisAPI_Templates {
template CellChangeSubscription mw_cell_change_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) Links p_links := ?,
template (present) FilterCriteriaAssocHo p_filterCriteriaAssocHo := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "CellChangeSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaAssocHo := p_filterCriteriaAssocHo,
expiryDeadline := p_expiryDeadline
......@@ -98,11 +108,15 @@ module RnisAPI_Templates {
template (omit) RabEstSubscription m_rab_est_subscription(
in template (value) CallbackReference p_callbackReference,
in template (value) RabEstSubscription_FilterCriteriaQci p_filterCriteriaQci,
in template (omit) Link p_links := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) Links p_links := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "RabEstSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaQci := p_filterCriteriaQci,
expiryDeadline := p_expiryDeadline
......@@ -110,12 +124,16 @@ module RnisAPI_Templates {
template (present) RabEstSubscription mw_rab_est_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) Links p_links := ?,
template (present) RabEstSubscription_FilterCriteriaQci p_filterCriteriaQci := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "RabEstSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaQci := p_filterCriteriaQci,
expiryDeadline := p_expiryDeadline
......@@ -124,11 +142,15 @@ module RnisAPI_Templates {
template (omit) RabModSubscription m_rab_mod_subscription(
in template (value) CallbackReference p_callbackReference,
in template (value) RabModSubscription_FilterCriteriaQci p_filterCriteriaQci,
in template (omit) Link p_links := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) Links p_links := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "RabModSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaQci := p_filterCriteriaQci,
expiryDeadline := p_expiryDeadline
......@@ -136,12 +158,16 @@ module RnisAPI_Templates {
template (present) RabModSubscription mw_rab_mod_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) Links p_links := ?,
template (present) RabModSubscription_FilterCriteriaQci p_filterCriteriaQci := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "RabModSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaQci := p_filterCriteriaQci,
expiryDeadline := p_expiryDeadline
......@@ -150,11 +176,15 @@ module RnisAPI_Templates {
template (omit) RabRelSubscription m_rab_rel_subscription(
in template (value) CallbackReference p_callbackReference,
in template (value) RabModSubscription_FilterCriteriaQci p_filterCriteriaQci,
in template (omit) Link p_links := omit,
in template (omit) Json.Bool p_requestTestNotification := omit,
in template (omit) WebsockNotifConfig p_websockNotifConfig := omit,
in template (omit) Links p_links := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "RabRelSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaQci := p_filterCriteriaQci,
expiryDeadline := p_expiryDeadline
......@@ -162,12 +192,16 @@ module RnisAPI_Templates {
template (present) RabRelSubscription mw_rab_rel_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) Links p_links := ?,
template (present) RabModSubscription_FilterCriteriaQci p_filterCriteriaQci := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "RabRelSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaQci := p_filterCriteriaQci,
expiryDeadline := p_expiryDeadline
......@@ -175,12 +209,16 @@ module RnisAPI_Templates {
template (present) MeasRepUeSubscription mw_meas_rep_ue_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) Links p_links := ?,
template (present) FilterCriteriaAssocTri p_filterCriteriaAssocTri := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "MeasRepUeSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaAssocTri := p_filterCriteriaAssocTri,
expiryDeadline := p_expiryDeadline
......@@ -188,25 +226,33 @@ module RnisAPI_Templates {
template (present) MeasTaSubscription mw_meas_ta_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) FilterCriteriaAssocHo p_filterCriteriaAssocHo := ?,
template (present) Links p_links := ?,
template (present) FilterCriteriaAssoc p_filterCriteriaAssoc := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "MeasTaSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaAssocHo := p_filterCriteriaAssocHo,
filterCriteriaAssoc := p_filterCriteriaAssoc,
expiryDeadline := p_expiryDeadline
} // End of template mw_meas_ta_subscription
template (present) CaReConfSubscription mw_ca_reconfig_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) Links p_links := ?,
template (present) FilterCriteriaAssoc p_filterCriteriaAssoc := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "CaReConfSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
filterCriteriaAssoc := p_filterCriteriaAssoc,
expiryDeadline := p_expiryDeadline
......@@ -214,13 +260,17 @@ module RnisAPI_Templates {
template (present) S1BearerSubscription mw_s1_bearer_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Link p_links := ?,
template (present) Links p_links := ?,
template (present) EventType p_eventType := ?,
template (present) S1BearerSubscriptionCriteria p_s1BearerSubscriptionCriteria := ?,
template Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "S1BearerSubscription",
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links := p_links,
eventType := p_eventType,
s1BearerSubscriptionCriteria := p_s1BearerSubscriptionCriteria,
......@@ -269,7 +319,7 @@ module RnisAPI_Templates {
template (omit) PlmnInfo m_plmn_info(
in AppInstanceId p_appInstanceId,
in template (value) Plmns p_plmn,
in template (value) Plmn_list p_plmn,
in template (omit) TimeStamp p_timeStamp := omit
) := {
timeStamp := p_timeStamp,
......@@ -279,7 +329,7 @@ module RnisAPI_Templates {
template (present) PlmnInfo mw_plmn_info(
template (present) AppInstanceId p_appInstanceId := ?,
template (present) Plmns p_plmn := ?,
template (present) Plmn_list p_plmn := ?,
template TimeStamp p_timeStamp := *
) := {
timeStamp := p_timeStamp,
......@@ -398,22 +448,6 @@ module RnisAPI_Templates {
s1BearerInfoDetailed := p_s1BearerInfoDetailed
} // End of mw_s1_ue_info
template (value) TimeStamp m_time_stamp(
in UInt32 p_seconds,
in UInt32 p_nanoSeconds := 0
) := {
seconds := p_seconds,
nanoSeconds := p_nanoSeconds
} // End of temlate m_time_stamp
template (present) TimeStamp mw_time_stamp(
template (present) UInt32 p_seconds := ?,
template (present) UInt32 p_nanoSeconds := ?
) := {
seconds := p_seconds,
nanoSeconds := p_nanoSeconds
} // End of temlate mw_time_stamp
template (value) FilterCriteriaAssoc m_filter_criteria(
in AppInstanceId p_appInstanceId,
in template (value) AssociateId p_associateId,
......
/**
* @desc The ETSI MEC ISG MEC012 Radio Network Information API described using OpenAPI
* @see http://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/01.01.01_60/gs_mec012v010101p.pdf
* @author ETSI / STF569 / TTF T027
* @version $Url$
* $Id$
* @desc Types ANd Values for ETSI GS MEC 012 V2.2.1 (2022-02)
* @copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media.
* All rights reserved.
*/
module RnisAPI_TypesAndValues {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
/**
* @desc Represents a time stamp
* @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.3-1: Attributes of the TimeStamp
*/
type record TimeStamp {
UInt32 seconds,
UInt32 nanoSeconds
}
/**
* @desc This type represents the information on Mobile Network(s), which a MEC application instance is associated to.
* @member timeStamp Time stamp
* @member appInsId Unique identifier for the MEC application instance
* @member plmn Public Land Mobile Network Identity
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.2-1: Attributes of the PlmnInfo
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.2-1: Attributes of the PlmnInfo
*/
type record PlmnInfo {
TimeStamp timeStamp optional,
AppInstanceId appInstanceId,
Plmns plmn
Plmn_list plmn
}
type record of PlmnInfo PlmnInfos;
......@@ -41,7 +33,7 @@ module RnisAPI_TypesAndValues {
* @member appInstanceId Unique identifier for the MEC application instance
* @member requestId Unique identifier allocated by the service consumer for the RAB Information request
* @member cellUserInfo The information on users per cell as defined below
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.3-1: Attributes of the RabInfo
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.3-1: Attributes of the RabInfo
*/
type record RabInfo {
TimeStamp timeStamp optional,
......@@ -54,7 +46,7 @@ module RnisAPI_TypesAndValues {
* @desc The information on users per cell
* @member ecgi E-UTRAN CelI Global Identifier
* @member ueInfo Information on UEs in the specific cell
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.3-1: Attributes of the RabInfo
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.3-1: Attributes of the RabInfo
*/
type record RabInfo_CellUserInfo_ {
Ecgi ecgi,
......@@ -62,11 +54,67 @@ module RnisAPI_TypesAndValues {
}
type record of RabInfo_CellUserInfo_ RabInfo_CellUserInfo;
/**
* @desc Information on UEs in the specific cell
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow.
* @member erabInfo Information on E-RAB as defined below
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.3-1: Attributes of the RabInfo
*/
type record UeInfo_ {
AssociateId associateId optional,
ErabInfo erabInfo
}
type record of UeInfo_ UeInfo;
/**
* @desc Information on E-RAB
* @member erabId The attribute that uniquely identifies a Radio Access bearer for specific UE as defined in ETSI TS 136 413
* @member erabQosParameters QoS parameters for the E-RAB
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.3-1: Attributes of the RabInfo
*/
type record ErabInfo_ {
Json.UInteger erabId,
ErabQosParameters erabQosParameters optional
}
type record of ErabInfo_ ErabInfo;
/**
* @desc QoS parameters for the E-RAB
* @member qci QoS Class Identifier as defined in TS 23.401
* @member qci_information The QoS information for the E-RAB
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.3-1: Attributes of the RabInfo
*/
type record ErabQosParameters {
Qci qci,
QosInformation qosInformation optional
}
/**
* @desc QoS Class Identifier as defined in TS 23.401
*/
type Json.UInteger Qci;
/**
* @desc The QoS information for the E-RAB
* @member erabGbrDl This IE indicates the maximum downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabGbrUl This IE indicates the maximum uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabGbrDl This IE indicates the guaranteed downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabMbrUl This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.3-1: Attributes of the RabInfo
*/
type record QosInformation_ {
Json.UInteger erabMbrDl,
Json.UInteger erabMbrUl,
Json.UInteger erabGbrDl,
Json.UInteger erabGbrUl
}
type record of QosInformation_ QosInformation;
/**
* @desc This type represents the information on S1-U bearer.
* @member timeStamp Time stamp
* @member S1UeInfo Information on a specific UE
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4-1 Attributes of the S1BearerInfo
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4-1 Attributes of the S1BearerInfo
*/
type record S1BearerInfo {
TimeStamp timeStamp optional,
......@@ -79,37 +127,21 @@ module RnisAPI_TypesAndValues {
* @member associateId 1 to N identifiers to associate the information for a specific UE or flow
* @member ecgi E-UTRAN CelI Global Identifier
* @member s1BearerInfoDetailed S1 bearer information
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4-1 Attributes of the S1BearerInfo
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4-1 Attributes of the S1BearerInfo
*/
type record S1UeInfo_ {
TempUeId tempUeId optional,
AssociateId associateId,
AssociateId associateId optional,
Ecgi ecgi,
S1BearerInfoDetailed s1BearerInfoDetailed
}
type record of S1UeInfo_ S1UeInfo;
/**
* @desc Information on UEs in the specific cell
* @member erabId The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413
* @member enbInfo S1 bearer information on eNB side
* @member sGwInfo S1 bearer information on GW side
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4-1 Attributes of the S1BearerInfo
*/
type record S1BearerInfoDetailed_ {
UInt32 erabId,
S1EnbInfo s1EnbInfo,
SGwInfo sGwInfo
}
type record of S1BearerInfoDetailed_ S1BearerInfoDetailed;
type record of UInt32 ErabId;
/**
* @desc The temporary identifier allocated for the specific UE
* @member mmec MMEC as defined in ETSI TS 136 413
* @member mtmsi M-TMSI as defined in ETSI TS 136 413
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4-1 Attributes of the S1BearerInfo
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4-1 Attributes of the S1BearerInfo
*/
type record TempUeId_ {
Mmec mmec,
......@@ -122,33 +154,49 @@ module RnisAPI_TypesAndValues {
type Json.String Mtmsi;
/**
* @desc S1 bearer information on eNB side
* @member ipAddress eNB transport layer address of this S1 bearer
* @member tunnelId eNB GTP-U TEID of this S1 bearer
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4-1 Attributes of the S1BearerInfo
* @desc Information on UEs in the specific cell
* @member erabId The element that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413
* @member enbInfo S1 bearer information on eNB side
* @member sGwInfo S1 bearer information on GW side
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4-1 Attributes of the S1BearerInfo
*/
type record S1EnbInfo {
Json.String ipAddress,
Json.String tunnelId
type record S1BearerInfoDetailed_ {
Json.UInteger erabId,
S1EnbInfo s1EnbInfo,
SGwInfo sGwInfo
}
type record of S1BearerInfoDetailed_ S1BearerInfoDetailed;
type record of Json.UInteger ErabId;
/**
* @desc S1 bearer information on GW side
* @member ipAddress SGW transport layer address of this S1 bearer
* @member tunnelId SGW GTP-U TEID of this S1 bearer
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4-1 Attributes of the S1BearerInfo
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4-1 Attributes of the S1BearerInfo
*/
type record SGwInfo {
Json.String ipAddress,
Json.String tunnelId
}
/**
* @desc S1 bearer information on eNB side
* @member ipAddress eNB transport layer address of this S1 bearer
* @member tunnelId eNB GTP-U TEID of this S1 bearer
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4-1 Attributes of the S1BearerInfo
*/
type record S1EnbInfo { // FIXME Check if it is usefull somewhere
Json.String ipAddress,
Json.String tunnelId
}
/**
* @desc This type represents the information on the Layer 2 measurements information from one or more eNBs that are associated with the requested MEC application instance.
* @member timestamp Time stamp
* @member cellInfo The per cell measurement information
* @member cellUEInfo The per cell per UE layer 2 measurements information
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4a-1: Attributes of the L2Meas
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4a-1: Attributes of the L2Meas
*/
type record L2Meas {
TimeStamp timeStamp optional,
......@@ -156,198 +204,7 @@ module RnisAPI_TypesAndValues {
L2Meas_CellUEInfo cellUEInfo optional
}
/**
* @desc Unique identifier for the mobile edge application instance",
*/
type Json.String AppInstanceId;
/**
* @desc Unique identifier allocated by the Mobile Edge application for the Information request
*/
type Json.String RequestId;
/**
* @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413
* @member ecgi Public Land Mobile Network Identity
* @member cellId E-UTRAN CelI Global Identifier
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.6-1: Attributes of the Ecgi
*/
type record Ecgi {
Plmn plmn,
CellId cellId
}
type record of Ecgi Ecgi_list;
/**
* @desc New Radio CelI Global Identifier as defined in ETSI TS 138 423
* @member ecgi Public Land Mobile Network Identity
* @member NrCellId NR CelI Global Identifier
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.6-1: Attributes of the Ecgi
*/
type record NRcgi {
Plmn plmn,
NrCellId nrcellId
}
type record of NRcgi NRcgi_list;
/**
* @desc Beam level measurement results for a NR cell as defined in ETSI TS 138 331
* @member resultsSsbIndexes Beam level measurement results based on SS/PBCH related measurements
* @member resultsCsiRsIndexes Beam level measurement results based on CSI-RS related measurements
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.8-1: Attributes of the RsIndexResults
*/
type record RsIndexResults {
ResultsPerSsbIndexList resultsSsbIndexes,
ResultsPerCsiRsIndexList resultsCsiRsIndexes
}
/**
* @desc Beam level measurement results for a NR cell as defined in ETSI TS 138 331
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.9-1: Attributes of the ResultsPerSsbIndexList
*/
type record ResultsPerSsbIndexList {
ResultsPerSsbIndex resultsPerSsbIndex optional
}
type record ResultsPerSsbIndex {
UInt8 ssbIndex,
MeasQuantityResultsNr ssbResults optional
}
/**
* @desc Beam level measurement results for a NR cell as defined in ETSI TS 138 331
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.10-1: Attributes of the ResultsPerCsiRsIndexList
*/
type record ResultsPerCsiRsIndexList {
ResultsPerCsiRsIndex resultsPerCsiRsIndex optional
}
type record ResultsPerCsiRsIndex {
UInt8 csiRsIndex,
MeasQuantityResultsNr csiRsResults optional
}
/**
* @desc Collection of UE reported NR measurement quantity results as defined in ETSI TS 138 331
@member rsrp Reference Signal Received Power as defined in ETSI TS 138 331
@member rsrq Reference Signal Received Quality as defined in ETSI TS 138 331
@member sinr Reference Signal to Interference & Noise Ratio as defined in ETSI TS 138 331
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.11-1: Attributes of the MeasQuantityResultsNr
*/
type record MeasQuantityResultsNr {
UInt8 rsrp optional,
UInt8 rsrq optional,
UInt8 sinr optional
}
/**
* @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413
* @member mcc The Mobile Country Code part of PLMN Identity as defined in 3GPP TS 36.413
* @member mnc The Mobile Network Code part of PLMN Identity as defined in 3GPP TS 36.413
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.5-1: Attributes of the Plmn
*/
type record Plmn {
Json.String mcc,
Json.String mnc
}
type record of Plmn Plmns;
/**
* @desc The E-UTRAN Cell Identity as a bit string (size (28)), as defined in 3GPP TS 36.413
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.6.2-1: CellId
*/
type Json.String CellId;
/**
* @desc the NR Cell Identity. Encoded as a bit string (size (36)) as defined in ETSI TS 138 423
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.6.2-1: CellId
*/
type Json.String NrCellId;
/**
* @desc Information on UEs in the specific cell
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow.
* @member erabInfo Information on E-RAB as defined below
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.3-1: Attributes of the RabInfo
*/
type record UeInfo_ {
AssociateId associateId optional,
ErabInfo erabInfo
}
type record of UeInfo_ UeInfo;
/**
* @desc Information on UEs in the specific cell
* @member type Numeric value (0-255) corresponding to specified type of identifier
* @member value Value for the identifier
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.4-1: Attributes of the AssociateId
*/
type record AssociateId_ {
AssociateId_type type_,
Json.String value_
} with {
variant (type_) "name as 'type'";
variant (value_) "name as 'value'";
}
type record of AssociateId_ AssociateId;
/**
* @desc Numeric value (0-255) corresponding to specified type of identifier
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.4-1: Attributes of the AssociateId
*/
type enumerated AssociateId_type {
RESERVED (0),
UE_IPV4_ADDRESS (1),
UE_IPV6_ADDRESS (2),
NATED_IP_ADDRESS (3),
GTP_TEID (4)
} with {
variant "JSON: as number"
}
/**
* @desc Information on E-RAB
* @member erabId The attribute that uniquely identifies a Radio Access bearer for specific UE as defined in ETSI TS 136 413
* @member erabQosParameters QoS parameters for the E-RAB
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.3-1: Attributes of the RabInfo
*/
type record ErabInfo_ {
UInt32 erabId,
ErabQosParameters erabQosParameters optional
}
type record of ErabInfo_ ErabInfo;
/**
* @desc QoS parameters for the E-RAB
* @member qci QoS Class Identifier as defined in TS 23.401
* @member qci_information The QoS information for the E-RAB
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.3-1: Attributes of the RabInfo
*/
type record ErabQosParameters {
Qci qci,
QosInformation qosInformation optional
}
/**
* @desc QoS Class Identifier as defined in TS 23.401
*/
type UInt32 Qci;
/**
* @desc The QoS information for the E-RAB
* @member erabGbrDl This IE indicates the maximum downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabGbrUl This IE indicates the maximum uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabGbrDl This IE indicates the guaranteed downlink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @member erabMbrUl This IE indicates the guaranteed uplink E-RAB Bit Rate as defined in TS 23.401 for this bearer
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.3-1: Attributes of the RabInfo
*/
type record QosInformation_ {
UInt32 erabMbrDl,
UInt32 erabMbrUl,
UInt32 erabGbrDl,
UInt32 erabGbrUl
}
type record of QosInformation_ QosInformation;
type integer UInt100 (0 .. 100) with {variant "unsigned 100 bit"};
type integer UInt100 with {variant "unsigned 100 bit"};
/**
* @desc The per cell measurement information
......@@ -369,7 +226,7 @@ module RnisAPI_TypesAndValues {
* @member ul_gbr_pdr_cell It indicates the packet discard rate in percentage of the uplink GBR traffic in a cell, as defined in ETSI TS 136 314
* @member dl_nongbr_pdr_cell It indicates the packet discard rate in percentage of the downlink non-GBR traffic in a cell, as defined in ETSI TS 136 314
* @member ul_nongbr_pdr_cell It indicates the packet discard rate in percentage of the uplink non-GBR traffic in a cell, as defined in ETSI TS 136 314
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4a-1: Attributes of the L2Meas
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4a-1: Attributes of the L2Meas
*/
type record L2Meas_CellInfo_ {
Ecgi ecgi optional,
......@@ -413,7 +270,7 @@ module RnisAPI_TypesAndValues {
* @member ul_gbr_data_volume_ue It indicates the data volume of the uplink GBR traffic of a UE, as defined in ETSI TS 136 314
* @member dl_nongbr_data_volume_ue It indicates the data volume of the downlink non-GBR traffic of a UE, as defined in ETSI TS 136 314
* @member ul_nongbr_data_volume_ue It indicates the data volume of the uplink non-GBR traffic of a UE, as defined in ETSI TS 136 314
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.2.4a-1: Attributes of the L2Meas
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.2.4a-1: Attributes of the L2Meas
*/
type record L2Meas_CellUEInfo_ {
Ecgi ecgi,
......@@ -438,170 +295,259 @@ module RnisAPI_TypesAndValues {
type record of L2Meas_CellUEInfo_ L2Meas_CellUEInfo;
/**
* @desc subscription to 5G UE measurement report notifications from Radio Network Information Service for UEs served by NR Cells
* @member subscriptionType Shall be set to "NrMeasRepUeSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @desc Subscription to cell change notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "CellChangeSubscription"
* @member callbackReference URI selected by the service consumerto receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaAssocTri List of filtering criteria for the subscription
* @member filterCriteriaAssocHo List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.11-1: Attributes of the NrMeasRepUeSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.2-1: Attributes of the CellChangeSubscription
*/
type record NrMeasRepUeSubscription {
type record CellChangeSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
FilterCriteriaNrMrs filterCriteriaNrMrs,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
FilterCriteriaAssocHo filterCriteriaAssocHo,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc List of links related to currently existing subscriptions for the service consumer
* @member links List of hyperlinks related to the resource
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.10-1: Attributes of the SubscriptionLinkList
* @desc List of hyperlinks related to the resource
* @member self_ URI referring to a resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.2-1: Attributes of the CellChangeSubscription
*/
type record SubscriptionLinkList {
SubscriptionLinkList_Link links
type record Links {
LinkType self_
} with {
variant (links) "name as '_links'";
variant (self_) "name as 'self'";
}
/**
* @desc List of hyperlinks related to the resource
* @member self_
* @member subscription A link to a subscription
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.10-1: Attributes of the SubscriptionLinkList
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member ecgi E-UTRAN CelI Global Identifier
* @member hoStatus Indicate the status of the UE handover procedure
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.2-1: Attributes of the CellChangeSubscription
*/
type record SubscriptionLinkList_Link {
LinkType self_,
Subscription subscription optional
} with {
variant (self_) "name as 'self'";
type record FilterCriteriaAssocHo {
AppInstanceId appInstanceId optional,
AssociateId associateId optional,
Ecgi_list ecgi optional,
HoStatus_list hoStatus optional
}
/**
* @desc A link to a subscription
* @member The URI referring to the subscription
* @member Type of the subscription
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.10-1: Attributes of the SubscriptionLinkList
* @desc Description of the subscribed to event
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.2-1: Attributes of the CellChangeSubscription
*/
type record Subscription_ {
LinkType href,
Json.String subscriptionType
type enumerated HoStatus {
IN_PREPARATION (1),
IN_EXECUTION (2),
COMPLETED (3),
REJECTED (4),
CANCELLED (5)
} with {
variant "JSON: as number"
}
type record of Subscription_ Subscription;
type record of HoStatus HoStatus_list;
/**
* @desc Subscription to UE measurement report notifications from Radio Network Information Service for UEs served by E-UTRA Cells
* @member subscriptionType Shall be set to "MeasRepUeSubscription"
* @desc Subscription to RAB establishment notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "RabEstSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaAssocTri List of filtering criteria for the subscription
* @member filterCriteriaQci List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.6-1: Attributes of the MeasRepUeSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.3-1: Attributes of the RabEstSubscription
*/
type record MeasRepUeSubscription {
type record RabEstSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
FilterCriteriaAssocTri filterCriteriaAssocTri,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
RabEstSubscription_FilterCriteriaQci filterCriteriaQci,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc Subscription to S1-U bearer information notification from Radio Network Information Service
* @member subscriptionType Shall be set to "S1BearerSubscription"
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member ecgi E-UTRAN CelI Global Identifier
* @member qci QoS Class Identifier as defined in ETSI TS 123 401
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.3-1: Attributes of the RabEstSubscription
*/
type record RabEstSubscription_FilterCriteriaQci {
AppInstanceId appInstanceId optional,
Ecgi_list ecgi optional,
Qci qci
}
/**
* @desc Subscription to RAB modification notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "RabModSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member eventType Description of the subscribed event
* @member s1BearerSubscriptionCriteria List of filtering criteria for the subscription
* @member filterCriteriaQci List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.9-1: Attributes of the S1BearerSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.4-1: Attributes of the RabModSubscription
*/
type record S1BearerSubscription {
type record RabModSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
EventType eventType,
S1BearerSubscriptionCriteria s1BearerSubscriptionCriteria,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
RabModSubscription_FilterCriteriaQci filterCriteriaQci,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc Subscription to RAB establishment notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "RabEstSubscription"
* @desc Subscription to RAB release notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "RabRelSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaQci List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.3-1: Attributes of the RabEstSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.5-1: Attributes of the RabRelSubscription
*/
type record RabEstSubscription {
type record RabRelSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
RabEstSubscription_FilterCriteriaQci filterCriteriaQci,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
RabModSubscription_FilterCriteriaQci filterCriteriaQci,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc Subscription to RAB modification notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "RabModSubscription"
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member erabId The attribute that uniquely identifies a Radio Access bearer for specific UE as defined in ETSI TS 136 413
* @member ecgi E-UTRAN CelI Global Identifier
* @member qci QoS Class Identifier as defined in ETSI TS 123 401
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.4-1: Attributes of the RabModSubscription
*/
type record RabModSubscription_FilterCriteriaQci {
AppInstanceId appInstanceId optional,
Json.UInteger erabId,
Ecgi_list ecgi optional,
Qci qci
}
/**
* @desc Subscription to UE measurement report notifications from Radio Network Information Service for UEs served by E-UTRA Cells
* @member subscriptionType Shall be set to "MeasRepUeSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaQci List of filtering criteria for the subscription
* @member filterCriteriaAssocTri List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.4-1: Attributes of the RabModSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.6-1: Attributes of the MeasRepUeSubscription
*/
type record RabModSubscription {
type record MeasRepUeSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
RabModSubscription_FilterCriteriaQci filterCriteriaQci,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
FilterCriteriaAssocTri filterCriteriaAssocTri,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc Subscription to RAB release notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "RabRelSubscription"
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member ecgi E-UTRAN CelI Global Identifier
* @member trigger_ Corresponds to a specific E-UTRAN UE Measurement Report trigger
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.6-1: Attributes of the MeasRepUeSubscription
*/
type record FilterCriteriaAssocTri {
AppInstanceId appInstanceId optional,
AssociateId associateId optional,
Ecgi_list ecgi optional,
Trigger trigger_ optional
} with {
variant (trigger_) "name as 'trigger'";
}
/**
* @desc This type represents a subscription to UE timing advance notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "MeasRepUeSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaQci List of filtering criteria for the subscription
* @member filterCriteriaAssoc List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.5-1: Attributes of the RabRelSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.7 Type: MeasTaSubscription
*/
type record RabRelSubscription {
type record MeasTaSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
RabModSubscription_FilterCriteriaQci filterCriteriaQci,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links,
FilterCriteriaAssoc filterCriteriaAssoc,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member ecgi E-UTRAN CelI Global Identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.7 Type: MeasTaSubscription
*/
type record FilterCriteriaAssoc {
AppInstanceId appInstanceId optional,
AssociateId associateId optional,
Ecgi_list ecgi optional
}
/**
* @desc Subscription to UE carrier aggregation reconfiguration notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "CaReConfSubscription"
* @member callbackReference URI selected by the service consumerto receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaAssoc List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.8-1: Attributes of the CaReconfSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.8-1: Attributes of the CaReconfSubscription
*/
type record CaReConfSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
FilterCriteriaAssoc filterCriteriaAssoc,
TimeStamp expiryDeadline optional
} with {
......@@ -609,196 +555,828 @@ module RnisAPI_TypesAndValues {
}
/**
* @desc Subscription to cell change notifications from Radio Network Information Service
* @member subscriptionType Shall be set to "CellChangeSubscription"
* @member callbackReference URI selected by the service consumerto receive notifications on the subscribed RNIS information
* @desc Subscription to S1-U bearer information notification from Radio Network Information Service
* @member subscriptionType Shall be set to "S1BearerSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaAssocHo List of filtering criteria for the subscription
* @member eventType Description of the subscribed event
* @member s1BearerSubscriptionCriteria List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.2-1: Attributes of the CellChangeSubscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.9-1: Attributes of the S1BearerSubscription
*/
type record CellChangeSubscription {
type record S1BearerSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links optional,
FilterCriteriaAssocHo filterCriteriaAssocHo,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
EventType eventType,
S1BearerSubscriptionCriteria s1BearerSubscriptionCriteria,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc
* @member callbackReference
* @member links
* @member filterCriteria
* @member expiryDeadline
* @desc Description of the subscribed event
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.9-1: Attributes of the S1BearerSubscription
*/
type record MeasTaSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Link links,
FilterCriteriaAssocHo filterCriteriaAssocHo,
TimeStamp expiryDeadline optional
type enumerated EventType_ {
RESERVED (0),
S1_BEARER_ESTABLISH (1),
S1_BEARER_MODIFY (2),
S1_BEARER_RELEASE (3)
} with {
variant (links) "name as '_links'";
variant "JSON: as number"
}
type record of EventType_ EventType;
/**
* @desc URL selected by the Mobile Edge application to receive notifications on the subscribed RNIS information
* @desc List of filtering criteria for the subscription
* @member associateId 0 to N identifiers to associate the events for a specific UE or a flow
* @member ecgi E-UTRAN CelI Global Identifier
* @member erabId The attribute that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.9-1: Attributes of the S1BearerSubscription
*/
type Json.AnyURI CallbackReference;
type record S1BearerSubscriptionCriteria {
AssociateId associateId optional,
Ecgi ecgi optional,
ErabId erabId optional
}
/**
* @desc List of hyperlinks related to the resource
* @member self_ URI referring to a resource
* @member self_
* @member subscription A link to a subscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.10-1: Attributes of the SubscriptionLinkList
*/
type record Link {
LinkType self_
type record SubscriptionLinkList_Link {
LinkType self_,
Subscription subscription optional
} with {
variant (self_) "name as 'self'";
}
/**
* @desc URI referring to a resource
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.5.2-1: Attributes of the LinkType
* @desc A link to a subscription
* @member The URI referring to the subscription
* @member Type of the subscription
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.10-1: Attributes of the SubscriptionLinkList
*/
type record LinkType {
Json.AnyURI href
type record Subscription_ {
LinkType href,
Json.String subscriptionType
}
type record of Subscription_ Subscription;
/**
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member ecgi E-UTRAN CelI Global Identifier
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.8-1: Attributes of the CaReconfSubscription
* @desc List of links related to currently existing subscriptions for the service consumer
* @member links List of hyperlinks related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.10-1: Attributes of the SubscriptionLinkList
*/
type record FilterCriteriaAssoc {
AppInstanceId appInstanceId,
AssociateId associateId optional,
Ecgi_list ecgi optional
type record SubscriptionLinkList {
SubscriptionLinkList_Link links
} with {
variant (links) "name as '_links'";
}
/**
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member ecgi E-UTRAN CelI Global Identifier
* @member qci QoS Class Identifier as defined in ETSI TS 123 401
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.3-1: Attributes of the RabEstSubscription
* @desc subscription to 5G UE measurement report notifications from Radio Network Information Service for UEs served by NR Cells
* @member subscriptionType Shall be set to "NrMeasRepUeSubscription"
* @member callbackReference URI selected by the service consumer to receive notifications on the subscribed RNIS information
* @member requestTestNotification Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI
* @member websockNotifConfig Provides details to negotiate and signal the use of a Websocket connection between RNIS and the service consumer for notifications
* @member links Hyperlink related to the resource
* @member filterCriteriaAssocTri List of filtering criteria for the subscription
* @member expiryDeadline Time stamp
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.11-1: Attributes of the NrMeasRepUeSubscription
*/
type record RabEstSubscription_FilterCriteriaQci {
AppInstanceId appInstanceId optional,
Ecgi_list ecgi optional,
Qci qci
type record NrMeasRepUeSubscription {
Json.String subscriptionType,
CallbackReference callbackReference,
Json.Bool requestTestNotification optional,
WebsockNotifConfig websockNotifConfig optional,
Links links optional,
FilterCriteriaNrMrs filterCriteriaNrMrs,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member erabId The attribute that uniquely identifies a Radio Access bearer for specific UE as defined in ETSI TS 136 413
* @member ecgi E-UTRAN CelI Global Identifier
* @member qci QoS Class Identifier as defined in ETSI TS 123 401
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.4-1: Attributes of the RabModSubscription
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member nrcgi NR Cell Global Identier
* @member triggerNr Corresponds to a specific 5G UE Measurement Report trigger
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.3.11-1: Attributes of the NrMeasRepUeSubscription
*/
type record RabModSubscription_FilterCriteriaQci {
type record FilterCriteriaNrMrs {
AppInstanceId appInstanceId optional,
UInt32 erabId,
Ecgi_list ecgi optional,
Qci qci
AssociateId associateId optional,
NRcgi_list nrcgi optional,
TriggerNr triggerNr optional
}
/**
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member ecgi E-UTRAN CelI Global Identifier
* @member hoStatus
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.2-1: Attributes of the CellChangeSubscription
* @desc This type represents configuration for the delivery of subscription notifications over Websockets
* @member websocketUri Set by location server to indicate to the service consumer the Websocket URI to be used for delivering notifications
* @member requestWebsocketUri Set to true by the service consumer to indicate that Websocket delivery is requested
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Clause 6.3.12 Type: WebsockNotifConfig
*/
type record FilterCriteriaAssocHo {
AppInstanceId appInstanceId optional,
AssociateId associateId optional,
Ecgi_list ecgi optional,
HoStatus_list hoStatus optional
type record WebsockNotifConfig {
Json.AnyURI websocketUri optional,
Json.Bool requestWebsocketUri optional
}
/**
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member ecgi E-UTRAN CelI Global Identifier
* @member trigger_ Corresponds to a specific E-UTRAN UE Measurement Report trigger
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.6-1: Attributes of the MeasRepUeSubscription
* @desc Unique identifier for the mobile edge application instance",
*/
type record FilterCriteriaAssocTri {
AppInstanceId appInstanceId optional,
AssociateId associateId optional,
Ecgi_list ecgi optional,
Trigger trigger_ optional
type Json.String AppInstanceId;
/**
* @desc Unique identifier allocated by the Mobile Edge application for the Information request
*/
type Json.String RequestId;
/**
* @desc This type represents a subscription to 5G UE measurement report notifications from Radio Network Information Service for UEs served by NR Cells
* @member notificationType Shall be set to "CellChangeNotification"
* @member timeStamp Time stamp
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member srcEcgi E-UTRAN Cell Global Identifier of the source cell
* @member trgEcgi E-UTRAN Cell Global Identifier of the target cell
* @member hoStatus Indicate the status of the UE handover procedure
* @member tempUeId The temporary identifier allocated for the specific UE
* @member links Links to resources related to this notification
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.2-1: Attributes of the CellChangeNotification
*/
type record CellChangeNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
AssociateId associateId,
Ecgi srcEcgi,
Ecgi_list trgEcgi,
HoStatus hoStatus,
TempUeId_ tempUeId,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc This type represents a subscription to 5G UE measurement report notifications from Radio Network Information Service for UEs served by NR Cells
* @member notificationType Shall be set to "RabEstNotification"."
* @member timeStamp Time stamp
* @member ecgi E-UTRAN Cell Global Identifier
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member erabId The attribute that uniquely identifies a Radio Access bearer for specific UE
* @member erabQosParameters QoS parameters for the E-RAB
* @member tempUeId The temporary identifier allocated for the specific UE
* @member links Links to resources related to this notification
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.3-1: Attributes of the RabEstNotification
*/
type record RabEstNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Ecgi ecgi,
AssociateId associateId,
ErabId erabId,
ErabQosParameters erabQosParameters,
TempUeId_ tempUeId,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc This type represents a notification from RNIS with regards to RAB modification procedure
* @member notificationType Shall be set to "RabModNotification"."
* @member timeStamp Time stamp
* @member ecgi E-UTRAN Cell Global Identifier
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member erabId The attribute that uniquely identifies a Radio Access bearer for specific UE
* @member erabQosParameters QoS parameters for the E-RAB
* @member links Links to resources related to this notification
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.4-1: Attributes of the RabModNotification
*/
type record RabModNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Ecgi ecgi,
AssociateId associateId,
ErabId erabId,
ErabQosParameters erabQosParameters,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc This type represents a notification from RNIS with regards to RAB release procedure
* @member notificationType Shall be set to "RabModNRabRelNotificationotification"."
* @member timeStamp Time stamp
* @member ecgi E-UTRAN Cell Global Identifier
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member erabReleaseInfo The release information for the E-RAB
* @member links Links to resources related to this notification
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.5-1: Attributes of the RabRelNotification
*/
type record RabRelNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Ecgi ecgi,
AssociateId associateId,
ErabReleaseInfo erabReleaseInfo,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc The release information for the E-RAB
* @member erabId The attribute that uniquely identifies a Radio Access bearer for specific UE
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.5-1: Attributes of the RabRelNotification
*/
type record ErabReleaseInfo {
ErabId erabId
}
/**
* @desc Subscription to UE measurement report notifications from Radio Network Information Service for UEs served by E-UTRA Cells
* @member notificationType Shall be set to "MeasRepUeNotification"
* @member timeStamp Time stamp
* @member ecgi E-UTRAN Cell Global Identifier
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member rsrp Reference Signal Received Power
* @member rsrpEx Extended Reference Signal Received Power
* @member rsrq Reference Signal Received Quality
* @member rsrqEx Extended Reference Signal Received Quality
* @member sinr Reference Signal "Signal to Interference plus Noise Ratio"
* @member trigger Corresponds to a specific E-UTRAN UE Measurement Report trigger
* @member eutranNeighbourCell This parameter can be repeated to contain information of all the neighbouring cells
* @member carrierAggregationMeasInfo This parameter can be repeated to contain information of all the carriers assign for Carrier Aggregation
* @member heightUe Indicates height of the UE in meters relative to the sea
* @member newRadioMeasInfo 5G New Radio secondary serving cells measurement information
* @member newRadioMeasNeiInfo Measurement quantities concerning the 5G NR neighbours
* @member links Hyperlink related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record MeasRepUeNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Ecgi ecgi,
AssociateId associateId,
Json.UInt8 rsrp,
Json.UInt8 rsrpEx optional,
Json.UInt8 rsrq,
Json.UInt8 rsrqEx optional,
Json.UInt8 sinr optional,
Trigger trigger_,
EutraNeighbourCellMeasInfo eutraNeighbourCellMeasInfo optional,
CarrierAggregationMeasInfo carrierAggregationMeasInfo optional,
Json.Integer heightUe optional,
NewRadioMeasInfo newRadioMeasInfo optional,
NewRadioMeasNeiInfo newRadioMeasNeiInfo optional,
Links links optional
} with {
variant (trigger_) "name as 'trigger'";
variant (links) "name as '_links'";
}
/**
* @desc List of filtering criteria for the subscription
* @member appInstanceId Unique identifier for the MEC application instance
* @member associateId 0 to N identifiers to associate the information for a specific UE or flow
* @member nrcgi NR Cell Global Identier
* @desc This parameter can be repeated to contain information of all the neighbouring cells
* @member ecgi E-UTRAN Cell Global Identifier
* @member rsrp Reference Signal Received Power
* @member rsrpEx Extended Reference Signal Received Power
* @member rsrq Reference Signal Received Quality
* @member rsrqEx Extended Reference Signal Received Quality
* @member sinr Reference Signal "Signal to Interference plus Noise Ratio"
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record EutraNeighbourCellMeasInfo_ {
Ecgi ecgi,
Json.UInt8 rsrp optional,
Json.UInt8 rsrpEx optional,
Json.UInt8 rsrq optional,
Json.UInt8 rsrqEx optional,
Json.UInt8 sinr optional
}
type record of EutraNeighbourCellMeasInfo_ EutraNeighbourCellMeasInfo;
/**
* @desc This parameter can be repeated to contain information of all the carriers assign for Carrier Aggregation
* @member cellIdSrv E-UTRAN Cell Identity of a Secondary serving Cell (SCell)
* @member rsrpSrv Reference Signal Received Power
* @member rsrpSrvEx Extended Reference Signal Received Power
* @member rsrqSrv Reference Signal Received Quality
* @member rsrqSrvEx Extended Reference Signal Received Quality
* @member sinrSrv Reference Signal "Signal to Interference plus Noise Ratio"
* @member cellIdNei E-UTRAN Cell Identity of the best neighbouring cell (NCell) associated with the SCell
* @member rsrpNei Reference Signal Received Power
* @member rsrpNeiEx Extended Reference Signal Received Power
* @member rsrqNei Reference Signal Received Quality
* @member rsrqNeiEx Extended Reference Signal Received Quality
* @member sinrNei Reference Signal "Signal to Interference plus Noise Ratio"
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record CarrierAggregationMeasInfo_ {
CellId cellIdSrv,
Json.UInt8 rsrpSrv optional,
Json.UInt8 rsrpSrvEx optional,
Json.UInt8 rsrqSrv optional,
Json.UInt8 rsrqSrvEx optional,
Json.UInt8 sinrSrv optional,
CellId cellIdNei,
Json.UInt8 rsrpNei optional,
Json.UInt8 rsrpNeiEx optional,
Json.UInt8 rsrqNei optional,
Json.UInt8 rsrqNeiEx optional,
Json.UInt8 sinrNei optional
}
type record of CarrierAggregationMeasInfo_ CarrierAggregationMeasInfo;
/**
* @desc 5G New Radio secondary serving cells measurement information
* @member nrCarrierFreq ARFCN applicable for a downlink, uplink or bi-directional (TDD) NR carrier frequency
* @member nrSCs Measurement quantities concerning the secondary serving cells
* @member nrBNCs Measurement quantities concerning the best neighbours of the secondary serving cells
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record NewRadioMeasInfo_ {
Json.UInteger nrCarrierFreq,
NrSCs nrSCs,
NrBNCs nrBNCs optional
}
type record of NewRadioMeasInfo_ NewRadioMeasInfo;
/**
* @desc Measurement quantities concerning the 5G NR neighbours
* @member nrNCellInfo 5G NR neighbour cell info
* @member nrNCellRsrp Reference Signal Received Power measurement
* @member nrNCellRsrq Reference Signal Received Quality measurement
* @member nrNCellRssi Reference signal SINR measurement
* @member rsIndexResults Beam level measurements results of a NR cell
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record NewRadioMeasNeiInfo_ {
NrNCellInfo nrNCellInfo,
Json.UInt8 nrNCellRsrp optional,
Json.UInt8 nrNCellRsrq optional,
Json.UInt8 nrNCellRssi optional,
RsIndexResults rsIndexResults optional
}
type record of NewRadioMeasNeiInfo_ NewRadioMeasNeiInfo;
/**
* @desc 5G NR neighbour cell info
* @member nrNCellPlmn Public land mobile network identities
* @member nrNCellGId Cell Global Identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record NrNCellInfo_ {
Plmn_list nrNCellPlmn,
NrCellId nrNCellGId
}
type record of NrNCellInfo_ NrNCellInfo;
/**
* @desc Measurement quantities concerning the secondary serving cells
* @member nrSCellInfo Secondary serving cell(s) info
* @member nrSCellGId Cell Global Identifier
* @member nrSCellRsrp Reference Signal Received Power measurement
* @member nrSCellRsrq Reference Signal Received Quality measurement
* @member nrSCellRssi Reference signal SINR measurement
* @member
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record NrSCs {
NrSCellInfo nrSCellInfo,
Json.UInt8 nrSCellRsrp optional,
Json.UInt8 nrSCellRsrq optional,
Json.UInt8 nrSCellRssi optional
}
/**
* @desc Secondary serving cell(s) info
* @member nrSCellInfo Secondary serving cell(s) info
* @member nrSCellPlmn Public land mobile network identities
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record NrSCellInfo_ {
Plmn_list nrSCellInfo,
NrCellId_list nrSCellPlmn
}
type record of NrSCellInfo_ NrSCellInfo;
/**
* @desc Measurement quantities concerning the best neighbours of the secondary serving cells
* @member nrBNCellInfo Best neighbours of the secondary serving cell(s) info
* @member nrBNCellRsrp Reference Signal Received Power measurement
* @member nrBNCellRsrq Reference Signal Received Quality measurement
* @member nrBNCellRssi Reference signal SINR measurement
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
* @member
*/
type record NrBNCs {
NrBNCellInfo nrBNCellInfo,
Json.UInt8 nrBNCellRsrp optional,
Json.UInt8 nrBNCellRsrq optional,
Json.UInt8 nrBNCellRss optional
}
/**
* @desc Best neighbours of the secondary serving cell(s) info
* @member nrBNCellPlmn Public land mobile network identities
* @member nrBNCellGId Cell Global Identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.6-1: Attributes of the MeasRepUeNotification
*/
type record NrBNCellInfo_ {
Plmn_list nrBNCellPlmn,
NrCellId nrBNCellGId
}
type record of NrBNCellInfo_ NrBNCellInfo;
/**
* @desc This type represents a notification from RNIS with regards to UE Timing Advance measurements
* @member notificationType Shall be set to "MeasTaNotification"
* @member timeStamp Time stamp
* @member ecgi E-UTRAN Cell Global Identifier
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member timingAdvance The timing advance
* @member links Hyperlink related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.7-1: Attributes of the MeasTaNotification
*/
type record MeasTaNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Ecgi ecgi,
AssociateId associateId,
Json.Integer timingAdvance optional,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc This type represents a notification from RNIS with regards to UE carrier aggregation reconfigurations
* @member notificationType Shall be set to "CaReconfNotification"
* @member timeStamp Time stamp
* @member ecgi E-UTRAN Cell Global Identifier
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member secondaryCellAdd
* @member secondaryCellRemove
* @member carrierAggregationMeasInfo This parameter can be repeated to contain information of all the carriers assign for Carrier Aggregation
* @member links Hyperlink related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.8-1: Attributes of the CaReconfNotification
*/
type record CaReconfNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Ecgi ecgi,
AssociateId associateId,
SecondaryCellAdd secondaryCellAdd optional,
SecondaryCellRemove secondaryCellRemove optional,
CarrierAggregationMeasInfo_CaReconfNotification
carrierAggregationMeasInfo optional,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc
* @member ecgi E-UTRAN Cell Global Identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.8-1: Attributes of the CaReconfNotification
*/
type record SecondaryCellAdd_ {
Ecgi ecgi
}
type record of SecondaryCellAdd_ SecondaryCellAdd;
/**
* @desc
* @member ecgi E-UTRAN Cell Global Identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.8-1: Attributes of the CaReconfNotification
*/
type record SecondaryCellRemove_ {
Ecgi ecgi
}
type record of SecondaryCellRemove_ SecondaryCellRemove;
/**
* @desc This parameter can be repeated to contain information of all the carriers assign for Carrier Aggregation
* @member cellIdSrv E-UTRAN Cell Identity of a Secondary serving Cell (SCell)
* @member rsrpSrv Reference Signal Received Power
* @member rsrqSrv Reference Signal Received Quality
* @member cellIdNei E-UTRAN Cell Identity of the best neighbouring cell (NCell) associated with the SCell
* @member rsrpNei Reference Signal Received Power
* @member rsrqNei Reference Signal Received Quality
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.8-1: Attributes of the CaReconfNotification
*/
type record CarrierAggregationMeasInfo_CaReconfNotification_ {
CellId cellIdSrv,
Json.UInt8 rsrpSrv optional,
Json.UInt8 rsrqSrv optional,
CellId cellIdNei,
Json.UInt8 rsrpNei optional,
Json.UInt8 rsrqNei optional
}
type record of CarrierAggregationMeasInfo_CaReconfNotification_ CarrierAggregationMeasInfo_CaReconfNotification;
/**
* @desc This type represents a notification from RNIS with regards to expiry of the existing subscription
* @member notificationType Shall be set to "ExpiryNotification"
* @member timeStamp Time stamp
* @member links Hyperlink related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.9-1: Attributes of the ExpiryNotification
*/
type record ExpiryNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc This type represents a notification from RNIS with regards to expiry of the existing subscription
* @member notificationType Shall be set to "S1BearerNotification"
* @member timeStamp Time stamp
* @member s1Event The subscribed event that triggered this notification in S1BearerSubscription
* @member s1UeInfo Information on specific UE that matches the criteria in S1BearerSubscription
* @member links Hyperlink related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.10-1 Attributes of the S1BearerNotification
*/
type record S1BearerNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
EventType s1Event,
S1UeInfo_ s1UeInfo,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc This type represents a notification from RNIS with regards to 5G UE measurement report for UEs.
* @member notificationType Shall be set to "NrMeasRepUeNotification"
* @member timeStamp Time stamp
* @member associateId 0 to N identifiers to associate the event for a specific UE or flow
* @member triggerNr Corresponds to a specific 5G UE Measurement Report trigger
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.11-1: Attributes of the NrMeasRepUeSubscription
* @member servCellMeasInfo This parameter can be repeated to contain information of all the serving cells
* @member nrNeighCellMeasInfo This parameter can be repeated to contain measurement information of all the neighbouring cells
* @member eutraNeighCellMeasInfo This parameter can be repeated to contain measurement information of all the neighbouring cells
* @member links Hyperlink related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.11-1: Attributes of the NrMeasRepUeNotification
*/
type record FilterCriteriaNrMrs {
AppInstanceId appInstanceId optional,
AssociateId associateId optional,
NRcgi_list nrcgi optional,
TriggerNr triggerNr optional
type record NrMeasRepUeNotification {
Json.String notificationType,
TimeStamp timeStamp optional,
AssociateId associateId,
TriggerNr triggerNr,
ServCellMeasInfo servCellMeasInfo optional,
NrNeighCellMeasInfo nrNeighCellMeasInfo optional,
EutraNeighbourCellMeasInfo_NrMeasRepUeNotification_
eutraNeighCellMeasInfo optional,
Links links optional
} with {
variant (links) "name as '_links'";
}
/**
* @desc List of filtering criteria for the subscription
* @member associateId 0 to N identifiers to associate the events for a specific UE or a flow
* @member ecgi E-UTRAN CelI Global Identifier
* @member erabId The attribute that uniquely identifies a S1 bearer for a specific UE, as defined in ETSI TS 136 413
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.9-1: Attributes of the S1BearerSubscription
* @desc This parameter can be repeated to contain information of all the serving cells
* @member nrcgi NR Cell Global Identifier
* @member sCell Measurement information relating to this serving cell
* @member nCell Measurement information relating to the best neighbour of this serving cell
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.11-1: Attributes of the NrMeasRepUeNotification
*/
type record S1BearerSubscriptionCriteria {
AssociateId associateId optional,
Ecgi ecgi optional,
ErabId erabId optional
type record ServCellMeasInfo {
Nrcgi nrcgi,
SCell sCell,
NCell nCell optional
}
/**
* @desc Description of the subscribed to event
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.2-1: Attributes of the CellChangeSubscription
* @desc Measurement information relating to this serving cell
* @member measQuantityResultsSsbCellM easurement quantity results relating to the Synchronization Signal Block
* @member measQuantityResultsCsiRsCell Measurement quantity results relating to the Channel State Information Reference Signal
* @member rsIndexResults Beam level measurement information
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.11-1: Attributes of the NrMeasRepUeNotification
*/
type enumerated HoStatus {
IN_PREPARATION (1),
IN_EXECUTION (2),
COMPLETED (3),
REJECTED (4),
CANCELLED (5)
type record SCell {
MeasQuantityResultsNr measQuantityResultsSsbCell optional,
MeasQuantityResultsNr measQuantityResultsCsiRsCell optional,
RsIndexResults rsIndexResults optional
}
/**
* @desc Measurement information relating to the best neighbour of this serving cell
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.11-1: Attributes of the NrMeasRepUeNotification
*/
type SCell NCell;
/**
* @desc This parameter can be repeated to contain measurement information of all the neighbouring cells
* @member nrcgi NR Cell Global Identifier
* @member measQuantityResultsSsbCellM easurement quantity results relating to the Synchronization Signal Block
* @member measQuantityResultsCsiRsCell Measurement quantity results relating to the Channel State Information Reference Signal
* @member rsIndexResults Beam level measurement information
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.11-1: Attributes of the NrMeasRepUeNotification
*/
type record NrNeighCellMeasInfo {
Nrcgi nrcgi,
MeasQuantityResultsNr measQuantityResultsSsbCell optional,
MeasQuantityResultsNr measQuantityResultsCsiRsCell optional,
RsIndexResults rsIndexResults optional
}
/**
* @desc This parameter can be repeated to contain information of all the neighbouring cells
* @member ecgi E-UTRAN Cell Global Identifier
* @member rsrp Reference Signal Received Power
* @member rsrq Reference Signal Received Quality
* @member sinr Reference Signal "Signal to Interference plus Noise Ratio"
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.11-1: Attributes of the NrMeasRepUeNotification
*/
type record EutraNeighbourCellMeasInfo_NrMeasRepUeNotification_ {
Ecgi ecgi,
Json.UInt8 rsrp optional,
Json.UInt8 rsrq optional,
Json.UInt8 sinr optional
}
type record of EutraNeighbourCellMeasInfo_NrMeasRepUeNotification_ EutraNeighbourCellMeasInfo_NrMeasRepUeNotification;
/**
* @desc This type represents a notification from RNIS with regards to expiry of the existing subscription
* @member notificationType Shall be set to "TestNotification"
* @member links Hyperlink related to the resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.4.12-1: Attributes of the TestNotification
*/
type record TestNotification {
Json.String notificationType,
Links links optional
} with {
variant "JSON: as number"
variant (links) "name as '_links'";
}
type record of HoStatus HoStatus_list;
/**
* @desc Description of the subscribed event
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.3.9-1: Attributes of the S1BearerSubscription
* @desc the NR Cell Identity. Encoded as a bit string (size (36)) as defined in ETSI TS 138 423
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.6.2-1: CellId
*/
type Json.String NrCellId;
type record of NrCellId NrCellId_list;
/**
* @desc Numeric value (0-255) corresponding to specified type of identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.4-1: Attributes of the AssociateId
*/
type enumerated EventType {
type enumerated AssociateId_type {
RESERVED (0),
S1_BEARER_ESTABLISH (1),
S1_BEARER_MODIFY (2),
S1_BEARER_RELEASE (3)
UE_IPV4_ADDRESS (1),
UE_IPV6_ADDRESS (2),
NATED_IP_ADDRESS (3),
GTP_TEID (4)
} with {
variant "JSON: as number"
}
/**
* @desc URL selected by the Mobile Edge application to receive notifications on the subscribed RNIS information
*/
type Json.AnyURI CallbackReference;
/**
* @desc URI referring to a resource
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.2-1: Attributes of the LinkType
*/
type record LinkType {
Json.AnyURI href
}
/**
* @desc Represents a time stamp
* @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
* ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.3-1: Attributes of the TimeStamp
*/
type record TimeStamp {
Json.UInteger seconds,
Json.UInteger nanoSeconds
}
/**
* @desc Information on UEs in the specific cell
* @member type Numeric value (0-255) corresponding to specified type of identifier
* @member value Value for the identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.4-1: Attributes of the AssociateId
*/
type record AssociateId_ {
AssociateId_type type_,
Json.String value_
} with {
variant (type_) "name as 'type'";
variant (value_) "name as 'value'";
}
type record of AssociateId_ AssociateId;
/**
* @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413
* @member mcc The Mobile Country Code part of PLMN Identity as defined in 3GPP TS 36.413
* @member mnc The Mobile Network Code part of PLMN Identity as defined in 3GPP TS 36.413
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.5-1: Attributes of the Plmn
*/
type record Plmn {
Json.String mcc,
Json.String mnc
}
type record of Plmn Plmn_list;
/**
* @desc E-UTRAN CelI Global Identifier as defined in 3GPP TS 36.413
* @member ecgi Public Land Mobile Network Identity
* @member cellId E-UTRAN CelI Global Identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.5-1: Attributes of the Ecgi
*/
type record Ecgi {
Plmn plmn,
CellId cellId
}
type record of Ecgi Ecgi_list;
/**
* @desc New Radio CelI Global Identifier as defined in ETSI TS 138 423
* @member ecgi Public Land Mobile Network Identity
* @member NrCellId NR CelI Global Identifier
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.6-1: Attributes of the Ecgi
*/
type record Nrcgi {
Plmn plmn,
NrCellId nrcellId
}
type record of Nrcgi NRcgi_list;
/**
* @desc Beam level measurement results for a NR cell as defined in ETSI TS 138 331
* @member resultsSsbIndexes Beam level measurement results based on SS/PBCH related measurements
* @member resultsCsiRsIndexes Beam level measurement results based on CSI-RS related measurements
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.8-1: Attributes of the RsIndexResults
*/
type record RsIndexResults {
ResultsPerSsbIndexList resultsSsbIndexes,
ResultsPerCsiRsIndexList resultsCsiRsIndexes
}
/**
* @desc Beam level measurement results for a NR cell as defined in ETSI TS 138 331
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.9-1: Attributes of the ResultsPerSsbIndexList
*/
type record ResultsPerSsbIndexList {
ResultsPerSsbIndex resultsPerSsbIndex optional
}
type record ResultsPerSsbIndex {
UInt8 ssbIndex,
MeasQuantityResultsNr ssbResults optional
}
/**
* @desc Beam level measurement results for a NR cell as defined in ETSI TS 138 331
* @member resultsPerCsiRsIndex
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.10-1: Attributes of the ResultsPerCsiRsIndexList
*/
type record ResultsPerCsiRsIndexList {
ResultsPerCsiRsIndex resultsPerCsiRsIndex optional
}
type record ResultsPerCsiRsIndex_ {
UInt8 csiRsIndex,
MeasQuantityResultsNr csiRsResults optional
}
type record of ResultsPerCsiRsIndex_ ResultsPerCsiRsIndex;
/**
* @desc Collection of UE reported NR measurement quantity results as defined in ETSI TS 138 331
* @member rsrp Reference Signal Received Power as defined in ETSI TS 138 331
* @member rsrq Reference Signal Received Quality as defined in ETSI TS 138 331
* @member sinr Reference Signal to Interference & Noise Ratio as defined in ETSI TS 138 331
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.5.11-1: Attributes of the MeasQuantityResultsNr
*/
type record MeasQuantityResultsNr {
UInt8 rsrp optional,
UInt8 rsrq optional,
UInt8 sinr optional
}
/**
* @desc The E-UTRAN Cell Identity as a bit string (size (28)), as defined in 3GPP TS 36.413
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.6.2-1: CellId
*/
type Json.String CellId;
/**
* @desc Unique identifier for the mobile edge application instance
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.6.3-1: Enumeration Trigger
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.6.3-1: Enumeration Trigger
*/
type enumerated Trigger {
NOT_AVAILABLE (0),
......@@ -832,7 +1410,7 @@ module RnisAPI_TypesAndValues {
/**
* @desc specified triggers for a 5G UE Measurement Report. Full details can be found in ETSI TS 138 331
* @see ETSI GS MEC 012 V2.1.1 (2019-12) Table 6.6.4-1: Enumeration TriggerNr
* @see ETSI GS MEC 012 V2.2.1 (2022-02) Table 6.6.4-1: Enumeration TriggerNr
*/
type enumerated TriggerNr {
NOT_AVAILABLE (0),
......
{
"openapi": "3.0.0",
"info": {
"contact": {
"url": "https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api"
},
"title": "ETSI GS MEC 015 Bandwidth Management API",
"version": "2.1.1",
"description": "The ETSI MEC ISG Bandwidth Management API described using OpenAPI.",
"license": {
"name": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters"
}
},
"externalDocs": {
"description": "ETSI GS MEC015 V2.1.1 Traffic Management APIs",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.01.01_60/gs_MEC015v020101p.pdf"
},
"servers": [
{
"url": "https://localhost/bwm/v1"
}
],
"tags": [
{
"name": "bwm"
}
],
"paths": {
"/bw_allocations": {
"get": {
"tags": [
"bwm"
],
"summary": "Retrieve information about a list of bandwidthAllocation resources",
"description": "Retrieves information about a list of bandwidthAllocation resources. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5.",
"operationId": "bandwidthAllocationListGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.app_instance_id"
},
{
"$ref": "#/components/parameters/Query.app_name"
},
{
"$ref": "#/components/parameters/Query.session_id"
}
],
"responses": {
"200": {
"description": "Upon success, a response body containing an array of the bandwidthAllocations is returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
},
"post": {
"tags": [
"bwm"
],
"summary": "Create a bandwidthAllocation resource",
"description": "Used to create a bandwidthAllocation resource. Typically used in 'Register to Bandwidth Management Service' procedure as described in clause 6.2.1.",
"operationId": "bandwidthAllocationPOST",
"parameters": [],
"requestBody": {
"description": "Entity body in the request contains BwInfo to be created.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"responses": {
"201": {
"description": "Upon success, the HTTP response shall include a 'Location' HTTP header that contains the resource URI of the created resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
}
},
"/bw_allocations/{allocationId}": {
"get": {
"tags": [
"bwm"
],
"summary": "Retrieve information about a specific bandwidthAllocation",
"description": "Retrieves information about a bandwidthAllocation resource. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5.",
"operationId": "bandwidthAllocationGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.allocationId"
}
],
"responses": {
"200": {
"description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
},
"put": {
"tags": [
"bwm"
],
"summary": "Update the information about a specific bandwidthAllocation",
"description": "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics.",
"operationId": "bandwidthAllocationPUT",
"requestBody": {
"description": "BwInfo with updated information is included as entity body of the request.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.allocationId"
}
],
"responses": {
"200": {
"description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"412": {
"$ref": "#/components/responses/412"
}
}
},
"patch": {
"tags": [
"bwm"
],
"summary": "Modify the information about a specific existing bandwidthAllocation by sending updates on the data structure",
"description": "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PATCH HTTP method updates a resource on top of the existing resource state by just including the changes ('deltas') in the request body.",
"operationId": "bandwidthAllocationPATCH",
"requestBody": {
"description": "Description of the changes to instruct the server how to modify the resource representation.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfoDeltas"
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.allocationId"
}
],
"responses": {
"200": {
"description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"412": {
"$ref": "#/components/responses/412"
}
}
},
"delete": {
"tags": [
"bwm"
],
"summary": "Remove a specific bandwidthAllocation",
"description": "Used in 'Unregister from Bandwidth Management Service' procedure as described in clause 6.2.3.",
"operationId": "bandwidthAllocationDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.allocationId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
}
}
},
"components": {
"responses": {
"204": {
"description": "Upon success, a response 204 No Content without any response body is returned."
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden : operation is not allowed given the current status of the resource.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"parameters": {
"Path.allocationId": {
"name": "allocationId",
"in": "path",
"description": "Represents a bandwidth allocation instance",
"required": true,
"schema": {
"type": "string"
}
},
"Query.app_instance_id": {
"name": "app_instance_id",
"in": "query",
"description": "A MEC application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.app_name": {
"name": "app_name",
"in": "query",
"description": "A MEC application instance may use multiple app_names as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.session_id": {
"name": "session_id",
"in": "query",
"description": "A MEC application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions. See note.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"schemas": {
"BwInfo": {
"properties": {
"allocationDirection": {
"description": "The direction of the requested BW allocation: 00 = Downlink (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"appInsId": {
"description": "Application instance identifier",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"fixedAllocation": {
"description": "Size of requested fixed BW allocation in [bps]",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"fixedBWPriority": {
"description": "Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document",
"enum": [
"SEE_DESCRIPTION"
],
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Enum"
},
"requestType": {
"description": "Numeric value (0 - 255) corresponding to specific type of consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION",
"type": "integer",
"enum": [
0,
1
],
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Enum_inlined"
},
"sessionFilter": {
"description": "Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected",
"items": {
"type": "object",
"properties": {
"dstAddress": {
"description": "Destination address identity of session (including range)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"dstPort": {
"description": "Destination port identity of session",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "String"
},
"protocol": {
"description": "Protocol number",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"sourceIp": {
"description": "Source address identity of session (including range)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"sourcePort": {
"description": "Source port identity of session",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "String"
}
}
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Structure (inlined)"
},
"timeStamp": {
"description": "Time stamp to indicate when the corresponding information elements are sent",
"properties": {
"nanoSeconds": {
"description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"seconds": {
"format": "uint32",
"type": "integer",
"description": "The seconds part of the Time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
}
},
"required": [
"seconds",
"nanoSeconds"
],
"type": "object",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Structure (inlined)"
}
},
"required": [
"appInsId",
"requestType",
"fixedAllocation",
"allocationDirection"
],
"type": "object",
"x-etsi-ref": "7.2.2"
},
"BwInfoDeltas": {
"properties": {
"allocationDirection": {
"description": "The direction of the requested BW allocation: 00 = Downlink (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"appInsId": {
"description": "Application instance identifier",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"fixedAllocation": {
"description": "Size of requested fixed BW allocation in [bps]",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"fixedBWPriority": {
"description": "Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document",
"enum": [
"SEE DESCRIPTION"
],
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Enum_inlined"
},
"requestType": {
"description": "Numeric value (0 - 255) corresponding to specific type of consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION",
"type": "string",
"enum": [
0,
1
],
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Enum_inlined"
},
"sessionFilter": {
"description": "Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected",
"items": {
"type": "object",
"properties": {
"dstAddress": {
"description": "Destination address identity of session (including range)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"dstPort": {
"description": "Destination port identity of session",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "String"
},
"protocol": {
"description": "Protocol number",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"sourceIp": {
"description": "Source address identity of session (including range)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"sourcePort": {
"description": "Source port identity of session ",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "String"
}
}
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Structure (inlined)"
}
},
"required": [
"appInsId",
"requestType"
],
"type": "object",
"x-etsi-ref": "7.2.3"
},
"ProblemDetails": {
"properties": {
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "URI"
},
"status": {
"description": "The HTTP status code for this occurrence of the problem",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"title": {
"description": "A short, human-readable summary of the problem type",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"type": {
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "URI"
}
},
"type": "object"
}
}
}
}
{
"openapi": "3.0.0",
"info": {
"contact": {
"url": "https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api"
},
"title": "ETSI GS MEC 015 Multi-access Traffic Steering APIs",
"version": "2.1.1",
"description": "The present document focuses on the Multi-access Traffic Steering multi-access edge service. It describes the related application policy information including authorization and access control, information flows, required information and service aggregation patterns. The present document specifies the necessary API with the data model and data format.",
"license": {
"name": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters"
}
},
"externalDocs": {
"description": "ETSI GS MEC015 V2.1.1 Traffic Management APIs",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.01.01_60/gs_MEC015v020101p.pdf"
},
"servers": [
{
"url": "https://localhost/mts/v1"
}
],
"tags": [
{
"name": "mts"
}
],
"paths": {
"/mts_capability_info": {
"get": {
"tags": [
"mts"
],
"summary": "Retrieve the MTS capability informations",
"description": "Used to query information about the MTS information. Typically used in the 'Get MTS service Info from the MTS Service' procedure as described in clause 6.2.6.",
"operationId": "mtsCapabilityInfoGET",
"parameters": [],
"responses": {
"200": {
"description": "Upon success, a response body containing the MTS capability information is returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MtsCapabilityInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
}
},
"/mts_sessions": {
"get": {
"tags": [
"mts"
],
"summary": "Retrieve information about a list of MTS sessions",
"description": "Retrieves information about a list of MTS sessions. Typically used in the 'Get configured MTS Session Info from the MTS Service' procedure as described in clause 6.2.10.",
"operationId": "mtsSessionsListGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.app_instance_id"
},
{
"$ref": "#/components/parameters/Query.app_name"
},
{
"$ref": "#/components/parameters/Query.session_id"
}
],
"responses": {
"200": {
"description": "Upon success, a response body containing an array of the MTS sessions is returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MtsSessionInfo"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
},
"post": {
"tags": [
"mts"
],
"summary": "Create a MTS session",
"description": "Used to create a MTS session. This method is typically used in 'Register application to the MTS Service' procedure as described in clause 6.2.7.",
"operationId": "mtsSessionPOST",
"parameters": [],
"requestBody": {
"description": "Entity body in the request contains MtsSessionInfo to be created.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MtsSessionInfo"
}
}
}
},
"responses": {
"201": {
"description": "Upon success, the HTTP response shall include a 'Location' HTTP header that contains the resource URI of the created resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MtsSessionInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
}
},
"/mts_sessions/{sessionId}": {
"get": {
"tags": [
"mts"
],
"summary": "Retrieve information about specific MTS session",
"description": "Retrieves information about an individual MTS session. Typically used in the 'Get configured MTS Session Info from the MTS Service' procedure as described in clause 6.2.10.",
"operationId": "mtsSessionGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.sessionId"
}
],
"responses": {
"200": {
"description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MtsSessionInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
},
"put": {
"tags": [
"mts"
],
"summary": "Update the information about specific MTS session",
"description": "Updates the information about an individual MTS session. As specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics. ",
"operationId": "mtsSessionPUT",
"parameters": [
{
"$ref": "#/components/parameters/Path.sessionId"
}
],
"requestBody": {
"description": "MtsSessionInfo with updated information is included as entity body of the request.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MtsSessionInfo"
}
}
}
},
"responses": {
"200": {
"description": "Used to indicate nonspecific success. The response body contains a representation of the resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MtsSessionInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"412": {
"$ref": "#/components/responses/412"
}
}
},
"delete": {
"tags": [
"mts"
],
"summary": "Remove specific MTS session",
"description": "DELETE method is typically used in 'Unregister from the MTS Service' procedure as described in clause 6.2.8.",
"operationId": "mtsSessionDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.sessionId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
}
}
},
"components": {
"responses": {
"204": {
"description": "Upon success, a response 204 No Content without any response body is returned."
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden : operation is not allowed given the current status of the resource.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"412": {
"description": "Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"parameters": {
"Path.sessionId": {
"name": "sessionId",
"in": "path",
"description": "Represents a MTS session instance",
"required": true,
"schema": {
"type": "string"
}
},
"Query.app_instance_id": {
"name": "app_instance_id",
"in": "query",
"description": "A MEC application instance may use multiple app_instance_ids as an input parameter to query the MTS session of a list of MEC application instances. See note.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.app_name": {
"name": "app_name",
"in": "query",
"description": "A MEC application instance may use multiple app_names as an input parameter to query the MTS session of a list of MEC application instances. See note.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.session_id": {
"name": "session_id",
"in": "query",
"description": "A MEC application instance may use session_id as an input parameter to query the information of a list of MTS sessions. See note.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"schemas": {
"MtsCapabilityInfo": {
"properties": {
"mtsAccessInfo": {
"description": "The information on access network connection as defined below",
"items": {
"type": "object",
"properties": {
"accessId": {
"format": "uint32",
"type": "integer",
"description": "Unique identifier for the access network connection",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"accessType": {
"format": "uint32",
"type": "integer",
"description": "Numeric value (0-255) corresponding to specific type of access network as following: 0 = Unknown 1 = Any IEEE802.11-based WLAN technology 2 = Any 3GPP-based Cellular technology 3 = Any Fixed Access 11 = IEEE802.11 a/b/g WLAN 12 = IEEE 802.11 a/b/g/n WLAN 13 = IEEE 802.11 a/b/g/n/ac WLAN 14 = IEEE 802.11 a/b/g/n/ac/ax WLAN (Wi-Fi 6) 15 = IEEE 802.11 b/g/n WLAN 31 = 3GPP GERAN/UTRA (2G/3G) 32 = 3GPP E-UTRA (4G/LTE) 33 = 3GPP NR (5G)",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"metered": {
"format": "uint32",
"type": "integer",
"description": "Numeric value (0-255) corresponding to the following: 0: the connection is not metered (see note) 1: the connection is metered 2: unknown ",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
}
}
},
"required": [
"accessId",
"accessType",
"metered"
],
"minItems": 1,
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "Structure (inlined)"
},
"mtsMode": {
"description": "Numeric value corresponding to a specific MTS operation supported by the TMS 0 = low cost, i.e. using the unmetered access network connection whenever it is available 1 = low latency, i.e. using the access network connection with lower latency 2 = high throughput, i.e. using the access network connection with higher throughput, or/and multiple access network connection simultaneously if supported 3 = redundancy, i.e. sending duplicated (redundancy) packets over multiple access network connections for highreliability and low-latency applications 4 = QoS, i.e. performing MTS based on the specific QoS requirements from the app",
"items": {
"type": "integer",
"format": "uint32"
},
"minItems": 1,
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "Uint32"
},
"timeStamp": {
"description": "Time stamp to indicate when the corresponding information elements are sent",
"properties": {
"nanoSeconds": {
"format": "uint32",
"type": "integer",
"description": "Time in nanoseconds in Unix-time since January 1, 1970, 00:00:00 UTC",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"seconds": {
"description": "Time in seconds in Unix-time since January 1, 1970, 00:00:00 UTC",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
}
},
"required": [
"seconds",
"nanoSeconds"
],
"type": "object",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Structure (inlined)"
}
},
"required": [
"mtsAccessInfo",
"mtsMode"
],
"type": "object",
"x-etsi-notes": "NOTE:\tA metered connection is a network connection that has a maximum data usage in a specific period, e.g. per hour/day/week/month. The user may get billed extra charges if they go over the allotted amount.",
"x-etsi-ref": "7.2.4"
},
"MtsSessionInfo": {
"properties": {
"appInsId": {
"description": "Application instance identifier",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"flowFilter": {
"description": "Traffic flow filtering criteria, applicable only if when requestType is set as FLOW_SPECIFIC_MTS_SESSION. Any filtering criteria shall define a single session only. In case multiple sessions match flowFilter the request shall be rejected. If the flowFilter field is included, at least one of its subfields shall be included. Any flowFilter subfield that is not included shall be ignored in traffic flow filtering",
"items": {
"type": "object",
"properties": {
"dscp": {
"format": "uint32",
"type": "integer",
"description": "DSCP in the IPv4 header or Traffic Class in the IPv6 header",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"dstIp": {
"description": "Destination address identity of session (including range)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"dstPort": {
"description": "Destination port identity of session",
"items": {
"type": "integer",
"format": "uint32"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Uint32"
},
"flowlabel": {
"format": "uint32",
"type": "integer",
"description": "Flow Label in the IPv6 header, applicable only if the flow is IPv6",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"protocol": {
"format": "uint32",
"type": "integer",
"description": "Protocol number",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"sourceIp": {
"description": "Source address identity of session (including range)",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"sourcePort": {
"description": "Source port identity of session",
"items": {
"type": "integer",
"format": "uint32"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "Uint32"
}
}
},
"minItems": 1,
"type": "array",
"x-etsi-mec-cardinality": "1..N",
"x-etsi-mec-origin-type": "Structure (inlined)"
},
"mtsMode": {
"format": "uint32",
"type": "integer",
"description": "Numeric value (0 - 255) corresponding to a specific MTS mode of the MTS session: 0 = low cost, i.e. using the unmetered access network connection whenever it is available 1 = low latency, i.e. using the access network connection with lower latency 2 = high throughput, i.e. using the access network connection with higher throughput, or multiple access network connection simultaneously 3 = redundancy, i.e. sending duplicated (redundancy) packets over multiple access network connections for high-reliability and low-latency applications 4 = QoS, i.e. performing MTS based on the QoS requirement (qosD)",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"qosD": {
"description": "QoS requirement description of the MTS session, applicable only if mtsMode = 4 (QoS). If the qosD field is included, at least one of its subfields shall be included. Any qosD subfield that is not included shall be ignored in Multi-access Traffic Steering (MTS)",
"properties": {
"maxJitter": {
"description": "tolerable jitter in [10 nanoseconds]",
"type": "integer",
"format": "uint32",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"maxLatency": {
"description": "tolerable (one-way) delay in [10 nanoseconds]",
"type": "integer",
"format": "uint32",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"maxLoss": {
"description": "tolerable packet loss rate in [1/10^x]",
"type": "integer",
"format": "uint32",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"minTpt": {
"description": "minimal throughput in [kbps]",
"type": "integer",
"format": "uint32",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"priority": {
"description": "numeric value (0 - 255) corresponding to the traffic priority 0: low; 1: medium; 2: high; 3: critical",
"type": "integer",
"format": "uint32",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
}
},
"type": "object",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Structure"
},
"requestType": {
"description": "Numeric value (0 - 255) corresponding to specific type of consumer as following: 0 = APPLICATION_SPECIFIC_MTS_SESSION 1 = FLOW_SPECIFIC_MTS_SESSION",
"enum": [
0,
1
],
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Enum_inlined"
},
"timeStamp": {
"description": "Time stamp to indicate when the corresponding information elements are sent ",
"properties": {
"nanoSeconds": {
"format": "uint32",
"type": "integer",
"description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"seconds": {
"format": "uint32",
"type": "integer",
"description": "The seconds part of the Time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
}
},
"required": [
"seconds",
"nanoSeconds"
],
"type": "object",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Structure (inlined)"
},
"trafficDirection": {
"description": "The direction of the requested MTS session: 00 = Downlink (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical (see note) ",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
}
},
"required": [
"appInsId",
"requestType",
"flowFilter",
"qosD",
"mtsMode",
"trafficDirection"
],
"type": "object",
"x-etsi-notes": "NOTE:\tFor the downlink direction of a symmetrical flow, \"sourceIp\" and \"sourcePort\" in the \"flowFilter\" structure are used for source address and port, respectively; \"dstIp\" and \"dstPort\" are used for destination address and port, respectively. For the uplink direction of a symmetrical flow, \"sourceIp\" and \"sourcePort\" are used for destination address and port, respectively; \"dstIp\" and \"dstPort\" are used for source address and port, respectively.",
"x-etsi-ref": "7.2.5"
},
"ProblemDetails": {
"properties": {
"detail": {
"description": "A human-readable explanation specific to this occurrence of the problem",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"instance": {
"description": "A URI reference that identifies the specific occurrence of the problem",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "URI"
},
"status": {
"description": "The HTTP status code for this occurrence of the problem",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "Uint32"
},
"title": {
"description": "A short, human-readable summary of the problem type",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "String"
},
"type": {
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "URI"
}
},
"type": "object"
}
}
}
}
......@@ -40,7 +40,7 @@ module TrafficManagementAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_post(
PX_ME_BWM_URI,
PICS_ROOT_API & PX_ME_BWM_URI,
v_headers,
m_http_message_body_json(
m_body_json_bw_info(
......@@ -60,17 +60,19 @@ module TrafficManagementAPI_Functions {
mw_bw_info(
p_app_instance_id
)))))) -> value v_response {
var charstring_list v_bw_allocation_id;
var charstring_list v_header_location;
tc_ac.stop;
log("f_create_bw_allocation_resource: BwInfo resource created: ", v_response);
f_get_header(valueof(v_response.response.header), "Location", v_bw_allocation_id);
if (lengthof(v_bw_allocation_id) != 0) {
p_bw_allocation_id := v_bw_allocation_id[0];
f_get_header(valueof(v_response.response.header), "Location", v_header_location);
p_bw_allocation_id := regexp(
v_header_location[0],
"?+" & PX_ME_BWM_URI & "/(?*)",
0
);
p_bw_info := v_response.response.body.json_body.bwInfo;
}
}
[] tc_ac.timeout {
log("f_create_bw_allocation_resource: Expected message not received");
}
......@@ -87,7 +89,7 @@ module TrafficManagementAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_delete(
PX_ME_BWM_URI & "/" & p_bw_allocation_id,
PICS_ROOT_API & PX_ME_BWM_URI & "/" & p_bw_allocation_id,
v_headers
)));
tc_ac.start;
......@@ -117,22 +119,16 @@ module TrafficManagementAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_post(
PX_ME_MTS_SESSIONS_URI,
PICS_ROOT_API & PX_ME_MTS_SESSIONS_URI,
v_headers,
m_http_message_body_json(
m_body_json_mts_session_info(
m_mts_session_info(
PX_APP_INSTANCE_ID,
APPLICATION_SPECIFIC_MTS_ALLOCATION, // Request type
APPLICATION_SPECIFIC_MTS_SESSION, // Request type
m_qosd, // QoS
LowCost, // MtsMode
Downlink, // TrafficDirection
{
m_session_filter(
"10.10.10.10",
{"1010"}
)
} // FlowFilter
Downlink // TrafficDirection
))))));
tc_ac.start;
alt {
......@@ -171,7 +167,7 @@ module TrafficManagementAPI_Functions {
httpPort.send(
m_http_request(
m_http_request_delete(
PX_ME_MTS_SESSIONS_URI & "/" & p_mts_session_id,
PICS_ROOT_API & PX_ME_MTS_SESSIONS_URI & "/" & p_mts_session_id,
v_headers
)));
tc_ac.start;
......
......@@ -5,4 +5,9 @@ module TrafficManagementAPI_Pics {
*/
modulepar boolean PICS_BWMANAGEMENT_API_SUPPORTED := true;
/**
* @desc Does the IUT support Multi-access Traffic Steering API?
*/
modulepar boolean PICS_MULTI_ACCESS_TRAFFIC_STEERING_API_SUPPORTED := true;
} // End of module TrafficManagementAPI_Pics
module TrafficManagementAPI_Pixits {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
......@@ -8,9 +11,21 @@ module TrafficManagementAPI_Pixits {
// LibMec/LocationAPI
import from LocationAPI_TypesAndValues all;
modulepar Address PX_APP_INSTANCE_ID := "appInst01";
modulepar Json.String PX_APP_INSTANCE_ID := "appInst01";
modulepar Json.String PX_APP_INSTANCE_ID_2 := "appInst02";
modulepar Json.String PX_APP_ALLOCATION_ID := "appAllocationId01";
modulepar Json.String PX_APP_NAME := "appName01";
modulepar Json.String PX_UNKNOWN_APP_INSTANCE_ID := "appInst99";
modulepar Json.String PX_UNKNOWN_APP_NAME := "appName99";
modulepar Json.String PX_UNKNOWN_APP_ALLOCATION_ID := "appAllocationId99";
modulepar Address PX_UNKNOWN_APP_INSTANCE_ID := "appInst99";
modulepar Json.String PX_UNKNOWN_BW_ALLOCATION_ID := "bwAllocationId99";
modulepar ResourceURL PX_RESOURCE_URL := "http://example.com/exampleAPI/location/v2/users?address:acr:192.0.0.1";
......
......@@ -6,6 +6,9 @@ module TrafficManagementAPI_Templates {
// LibCommon
import from LibCommon_BasicTypesAndValues all;
// LibMec
import from LibMec_TypesAndValues all;
// LibMec/TrafficManagementAPI
import from TrafficManagementAPI_TypesAndValues all;
import from TrafficManagementAPI_Pixits all;
......@@ -15,11 +18,15 @@ module TrafficManagementAPI_Templates {
in BwRequestType p_requestType,
in FixedAllocation p_fixedAllocation,
in AllocationDirection p_allocationDirection,
in template (omit) Json.String p_appName := omit,
in template (omit) AllocationId p_allocationId := omit,
in template (omit) SessionFilter p_sessionFilter := omit,
in template (omit) FixedBWPriority p_fixedBWPriority := omit
) := {
allocationId := p_allocationId,
timeStamp := omit,
appInsId := p_appInsId,
appName := p_appName,
requestType := p_requestType,
sessionFilter := p_sessionFilter,
fixedBWPriority := p_fixedBWPriority,
......@@ -32,11 +39,15 @@ module TrafficManagementAPI_Templates {
template (present) BwRequestType p_requestType := ?,
template (present) FixedAllocation p_fixedAllocation := ?,
template (present) AllocationDirection p_allocationDirection := ?,
template Json.String p_appName := *,
template AllocationId p_allocationId := *,
template SessionFilter p_sessionFilter := *,
template FixedBWPriority p_fixedBWPriority := *
) := {
allocationId := p_allocationId,
timeStamp := *,
appInsId := p_appInsId,
appName := p_appName,
requestType := p_requestType,
sessionFilter := p_sessionFilter,
fixedBWPriority := p_fixedBWPriority,
......@@ -47,11 +58,13 @@ module TrafficManagementAPI_Templates {
template (omit) BwInfoDeltas m_bw_info_deltas(
in AppInsId p_appInsId := PX_APP_INSTANCE_ID,
in BwRequestType p_requestType,
in template (omit) AllocationId p_allocationId := omit,
in template (omit) SessionFilter p_sessionFilter := omit,
in template (omit) FixedAllocation p_fixedAllocation := omit,
in template (omit) AllocationDirection p_allocationDirection := omit,
in template (omit) FixedBWPriority p_fixedBWPriority := omit
) := {
allocationId := p_allocationId,
appInsId := p_appInsId,
requestType := p_requestType,
sessionFilter := p_sessionFilter,
......@@ -66,8 +79,10 @@ module TrafficManagementAPI_Templates {
template (present) SessionFilter p_sessionFilter := ?,
template (present) FixedAllocation p_fixedAllocation := ?,
template (present) AllocationDirection p_allocationDirection := ?,
template AllocationId p_allocationId := *,
template FixedBWPriority p_fixedBWPriority := *
) := {
allocationId := p_allocationId,
appInsId := p_appInsId,
requestType := p_requestType,
sessionFilter := p_sessionFilter,
......@@ -76,7 +91,7 @@ module TrafficManagementAPI_Templates {
allocationDirection := p_allocationDirection
} // End of template mw_bw_info_deltas
template (omit) SessionFilterItems m_session_filter(
template (omit) SessionFilterItem m_session_filter(
in template (value) SourceIp p_sourceIp,
in template (value) SourcePort p_sourcePort,
in template (omit) DstAddress p_dstAddress := omit,
......@@ -90,7 +105,7 @@ module TrafficManagementAPI_Templates {
protocol := p_protocol
} // End of template m_session_filter
template SessionFilterItems mw_session_filter(
template SessionFilterItem mw_session_filter(
template (present) SourceIp p_sourceIp := ?,
template (present) SourcePort p_sourcePort := ?,
template DstAddress p_dstAddress := *,
......@@ -130,11 +145,15 @@ module TrafficManagementAPI_Templates {
in template (value) QosD p_qosD,
in template (value) MtsMode p_mtsMode,
in template (value) TrafficDirection p_trafficDirection,
in template (omit) SessionId p_sessionId := omit,
in template (omit) Json.String p_appName := omit,
in template (omit) FlowFilter p_flowFilter := omit,
in template (omit) TimeStamp p_timeStamp := omit
) := {
sessionId := p_sessionId,
timeStamp := p_timeStamp,
appInsId := p_appInsId,
appName := p_appName,
requestType := p_requestType,
flowFilter := p_flowFilter,
qosD := p_qosD,
......@@ -148,11 +167,15 @@ module TrafficManagementAPI_Templates {
template (present) QosD p_qosD := ?,
template (present) MtsMode p_mtsMode := ?,
template (present) TrafficDirection p_trafficDirection := ?,
template SessionId p_sessionId := *,
template Json.String p_appName := *,
template FlowFilter p_flowFilter := *,
template TimeStamp p_timeStamp := *
) := {
sessionId := p_sessionId,
timeStamp := p_timeStamp,
appInsId := p_appInsId,
appName := p_appName,
requestType := p_requestType,
flowFilter := p_flowFilter,
qosD := p_qosD,
......@@ -160,6 +183,42 @@ module TrafficManagementAPI_Templates {
trafficDirection := p_trafficDirection
} // End of template mw_mts_session_info
template (omit) FlowFilterItem m_flow_filter(
in template (value) SourceIp p_sourceIp,
in template (value) SourcePort p_sourcePort,
in template (omit) DstAddress p_dstIp := omit,
in template (omit) DstPort p_dstPort := omit,
in template (omit) Protocol p_protocol := omit,
in template (omit) Dscp p_dscp := omit,
in template (omit) Flowlabel p_flowlabel := omit
) := {
sourceIp := p_sourceIp,
sourcePort := p_sourcePort,
dstIp := p_dstIp,
dstPort := p_dstPort,
protocol := p_protocol,
dscp := p_dscp,
flowlabel := p_flowlabel
} // End of template m_flow_filter
template FlowFilterItem mw_flow_filter(
template (present) SourceIp p_sourceIp := ?,
template (present) SourcePort p_sourcePort := ?,
template DstAddress p_dstIp := *,
template DstPort p_dstPort := *,
template Protocol p_protocol := *,
template Dscp p_dscp := omit,
template Flowlabel p_flowlabel := omit
) := {
sourceIp := p_sourceIp,
sourcePort := p_sourcePort,
dstIp := p_dstIp,
dstPort := p_dstPort,
protocol := p_protocol,
dscp := p_dscp,
flowlabel := p_flowlabel
} // End of template mw_flow_filter
template (value) QosD m_qosd(
in UInt32 p_minTpt := 128,
in UInt32 p_maxLatency := 128,
......