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,9 +37,11 @@ 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
) runs on HttpComponent {
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,75 +49,77 @@ 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,
PX_CALLBACK_REF_URL,
PX_USER
))))));
m_body_json_user_location_event_subscription(
m_user_location_event_subscription(
PX_CALLBACK_REF_URL,
p_address
))))));
tc_ac.start;
alt {
[] httpPort.receive(
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
)))))) -> value v_response {
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
) runs on HttpComponent {
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;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_204_no_content
)) {
)) {
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
) runs on HttpComponent {
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,58 +127,55 @@ 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 {
[] httpPort.receive(
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,
?
)))))) -> value v_response {
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
) runs on HttpComponent {
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,14 +187,16 @@ 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
) runs on HttpComponent {
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,55 +204,58 @@ 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,
PX_CALLBACK_REF_URL,
PX_ZONE_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;
alt {
[] httpPort.receive(
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
)))))) -> value v_response {
tc_ac.stop;
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
) runs on HttpComponent {
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,14 +267,18 @@ 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
} // End of function f_delete_zone_location_event_subscription
function f_create_circle_notification_subscription(
out CircleNotificationSubscription p_circle_notification_subscription
) runs on HttpComponent {
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,53 +286,146 @@ 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 {
[] httpPort.receive(
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
)))))) -> value v_response {
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
) runs on HttpComponent {
function f_delete_zone_status_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_ZONES_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_zone_status_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // 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;
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_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_ME_APP_Q_AREA_SUB_URI & "/" & v_uri,
PICS_ROOT_API & PX_LOC_API_AREA_SUB_URI & "/" & p_subscription_id,
v_headers
)));
tc_ac.start;
......@@ -334,24 +437,15 @@ module LocationAPI_Functions {
tc_ac.stop;
}
[] tc_ac.timeout {
log("f_delete_circle_notification_subscription: INCONC: Expected message not received");
log("f_delete_user_area_subscription: INCONC: Expected message not received");
}
} // End of 'alt' statement
} // End of function f_delete_circle_notification_subscription
} // End of function f_delete_user_area_subscription
function f_create_distance_notification_subscription(
out DistanceNotificationSubscription p_distance_notification_subscription
) runs on HttpComponent {
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,75 +453,73 @@ 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(
PX_UE_DIST_SUB_CALLBACK_URI, // callbackReference
-, // checkImmediate
PX_CLIENT_ID, //clientCorrelator
-, // criteria
10.0, // distance
-,
{ PX_UE_MONITORED_IP_ADDRESS } // monitoredAddress
))))));
m_body_json_user_distance_subscription(
m_user_distance_subscription(
PX_UE_DIST_SUB_CALLBACK_URI, // callbackReference
PX_USER,
{ PX_UE_MONITORED_IP_ADDRESS },
PX_DISTANCE,
PX_TRACKIMNG_ACCURACY
))))));
tc_ac.start;
alt {
[] httpPort.receive(
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
)))))) -> value v_response {
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
) runs on HttpComponent {
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;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_204_no_content
)) {
)) {
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,32 +39,48 @@ 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";
modulepar Address PX_ACR_UNKNOWN_IP := "acr:10.0.0.254";
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 CallbackReference PX_TRAFFIC_SUB_CALLBACK_URI := "";
modulepar float PX_NOTIF_EXPIRY := 60.0;
modulepar Json.UInteger PX_UPPER_NUM_USER_THRESHOLD := 10;
modulepar Json.UInteger PX_LOWER_NUM_USER_THRESHOLD := 1;
} // End of module LocationAPI_Pixits
module LocationAPI_Templates {
// JSON
import from Json all;
// LibCommon
import from LibCommon_BasicTypesAndValues all;
// LibMec
import from LibMec_TypesAndValues all;
// LibMec/LocationAPI
import from LocationAPI_TypesAndValues all;
import from LocationAPI_Pixits all;
template (value) UserInfo m_user_info(
in Address p_address := PX_USER,
in AccessPointId p_access_point_id := PX_ACCESS_POINT_ID,
......@@ -20,13 +23,14 @@ 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
template (present) UserInfo mw_user_info(
template (present) Address p_address := ?,
template (present) AccessPointId p_access_point_id := ?,
......@@ -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
......@@ -51,7 +56,7 @@ module LocationAPI_Templates {
user := p_userInfo,
resourceURL := p_resource_url
} // End of template m_user_list
template UserList mw_user_list(
template UserInfos p_userInfo := *,
template (present) ResourceURL p_resource_url := ?
......@@ -59,7 +64,7 @@ module LocationAPI_Templates {
user := p_userInfo,
resourceURL := p_resource_url
} // End of template mw_user_list
template (value) LocationInfo m_location_info(
in Latitude p_latitude,
in Longitude p_longitude,
......@@ -82,7 +87,7 @@ module LocationAPI_Templates {
timestamp_ := omit,
velocity := omit
} // End of template m_location_info
template (present) LocationInfo mw_location_info(
template (present) Latitude p_latitude := ?,
template (present) Longitude p_longitude := ?,
......@@ -104,7 +109,7 @@ module LocationAPI_Templates {
timestamp_ := *,
velocity := *
} // End of template mw_location_info
template (value) ZoneInfo m_zone_info(
in ZoneId p_zone_id := PX_ZONE_ID,
in NumberOfAccessPoints p_number_of_access_points := PX_NB_ACCESS_POINTS,
......@@ -118,7 +123,7 @@ module LocationAPI_Templates {
numberOfUsers := p_number_of_users,
resourceURL := p_resource_url
} // End of template m_zone_info
template (present) ZoneInfo mw_zone_info(
template (present) ZoneId p_zone_id := ?,
template (present) NumberOfAccessPoints p_number_of_access_points := ?,
......@@ -132,7 +137,7 @@ module LocationAPI_Templates {
numberOfUsers := p_number_of_users,
resourceURL := p_resource_url
} // End of template mw_zone_info
template (omit) AccessPointList m_access_point_list(
in ZoneId p_zoneId := PX_ZONE_ID,
in ResourceURL p_resourceURL,
......@@ -142,267 +147,708 @@ module LocationAPI_Templates {
accessPoint := p_accessPoint,
resourceURL := p_resourceURL
} // End of template m_access_point_list
template AccessPointList mw_access_point_list(
template (present) ZoneId p_zoneId := ?,
template (present) ResourceURL p_resourceURL := ?,
template AccessPointInfos p_accessPoint := *
) := {
template (present) AccessPointList mw_access_point_list(
template (present) ZoneId p_zoneId := ?,
template (present) ResourceURL p_resourceURL := ?,
template AccessPointInfos p_accessPoint := *
) := {
zoneId := p_zoneId,
accessPoint := p_accessPoint,
resourceURL := p_resourceURL
} // End of template mw_access_point_list
template (value) UserTrackingSubscription m_user_tracking_subscription(
in ClientCorrelator p_clientCorrelator,
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in UserEventCriteria p_userEventCriteria := { Entering }
) := {
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
address_ := p_address,
userEventCriteria := p_userEventCriteria,
resourceURL := omit
} // End of template m_user_tracking_subscription
template (present) UserTrackingSubscription mw_user_tracking_subscription(
template (present) ClientCorrelator p_clientCorrelator := ?,
template (present) CallbackReference p_callbackReference := ?,
template (present) Address p_address := PX_USER,
template (present) UserEventCriteria p_userEventCriteria := { Entering },
template (present) ResourceURL p_resourceURL := ?
) := {
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
address_ := p_address,
userEventCriteria := p_userEventCriteria,
resourceURL := p_resourceURL
} // End of template mw_user_tracking_subscription
template (value) PeriodicTrackingSubscription m_periodic_tracking_subscription(
in ClientCorrelator p_clientCorrelator,
in CallbackReference p_callbackReference,
in Address p_address := PX_USER,
in Json.Number p_frequency := 10.0,
in Json.Number p_requestedAccuracy := 10.0
) := {
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
address_ := p_address,
frequency := p_frequency,
requestedAccuracy := p_requestedAccuracy,
resourceURL := omit
} // End of template m_periodic_tracking_subscription
template (present) PeriodicTrackingSubscription mw_periodic_tracking_subscription(
template (present) ClientCorrelator p_clientCorrelator := ?,
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 (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 := *
) := {
clientCorrelator := p_clientCorrelator,
callbackReference := p_callbackReference,
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
template (omit) CircleNotificationSubscription m_circle_notification_subscription(
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
) := {
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 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,
userEventPara := p_userEventPara,
locationEventCriteria := p_locationEventCriteria,
expiryDeadline := p_expiryDeadline
} // End of template m_user_location_event_subscription_error
template (present) UserLocationEventSubscription mw_user_location_event_subscription(
template (present) CallbackReference p_callbackReference := ?,
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,
checkImmediate := p_checkImmediate,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := p_links_,
address_ := p_address,
userEventPara := p_userEventPara,
locationEventCriteria := p_locationEventCriteria,
expiryDeadline := p_expiryDeadline
} // End of template mw_user_location_event_subscription
template (omit) UserLocationPeriodicSubscription m_user_location_periodic_subscription(
in CallbackReference p_callbackReference,
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) PeriodicEventInfo p_periodicEventInfo := omit,
in template (omit) TimeStamp p_expiryDeadline := omit
) := {
subscriptionType := "UserLocationPeriodicSubscription",
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
template CircleNotificationSubscription mw_circle_notification_subscription(
template ClientCorrelator p_clientCorrelator := *,
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 := *
) := {
callbackReference := p_callbackReference,
requestTestNotification := p_requestTestNotification,
websockNotifConfig := p_websockNotifConfig,
links_ := omit,
address_ := p_address,
periodicEventInfo := p_periodicEventInfo,
expiryDeadline := p_expiryDeadline
} // End of template m_user_location_periodic_subscription
template (present) UserLocationPeriodicSubscription mw_user_location_periodic_subscription(
template (present) CallbackReference p_callbackReference := ?,
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,
periodicEventInfo := p_periodicEventInfo,
expiryDeadline := p_expiryDeadline
} // End of template mw_user_location_periodic_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 (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
) := {
subscriptionType := "ZoneLocationEventSubscription",
clientCorrelator := p_clientCorrelator,
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 (present) ZoneLocationEventSubscription mw_zone_location_event_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 LocationEventCriteria p_locationEventCriteria := *,
template ReportingCtrl p_reportingCtrl := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "ZoneLocationEventSubscription",
clientCorrelator := p_clientCorrelator,
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 (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) 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) 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 (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
) := {
subscriptionType := "UserAreaSubscription",
clientCorrelator := p_clientCorrelator,
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 (present) UserAreaSubscription mw_user_area_subscription(
template (present) CallbackReference p_callbackReference := ?,
template (present) Address p_address := ?,
template (present) Links p_links_ := ?,
template (present) AreaInfo p_areaDefine := ?,
template (present) Json.Number p_trackingAccuracy := ?,
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 := *
) := {
subscriptionType := "UserAreaSubscription",
clientCorrelator := p_clientCorrelator,
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) 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
) := {
subscriptionType := "UserAreaSubscription",
clientCorrelator := p_clientCorrelator,
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 (present) UserDistanceSubscription mw_user_distance_subscription(
template (present) CallbackReference p_callbackReference := ?,
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 Json.Bool p_requestTestNotification := *,
template WebsockNotifConfig p_websockNotifConfig := *,
template Json.AnyURI p_referenceAddress := *,
template ReportingCtrl p_reportingCtrl := *,
template TimeStamp p_expiryDeadline := *
) := {
subscriptionType := "UserAreaSubscription",
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_,
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
template (omit) DistanceNotificationSubscription m_distance_notification_subscription(
in template (value) CallbackReference p_callbackReference,
in template (value) Json.Bool p_checkImmediate := true,
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
) := {
callbackReference := p_callbackReference,
checkImmediate := p_checkImmediate,
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
template DistanceNotificationSubscription mw_distance_notification_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) Json.Number p_trackingAccuracy := ?,
template ResourceURL p_resourceURL := *
) := {
callbackReference := p_callbackReference,
checkImmediate := p_checkImmediate,
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,
in template (omit) ClientCorrelator p_clientCorrelator := omit,
in template (omit) ResourceURL p_resourceURL := omit
) := {
address_ := p_address,
callbackReference := p_callbackReference,
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
template PeriodicNotificationSubscription mw_periodic_notification_subscription(
template (present) Addresses p_address := ?,
template (present) CallbackReference p_callbackReference := ?,
template (present) UInt32 p_frequency := ?,
template (present) UInt32 p_requestedAccuracy := ?,
template ClientCorrelator p_clientCorrelator := *,
template ResourceURL p_resourceURL := *
) := {
address_ := p_address,
callbackReference := p_callbackReference,
clientCorrelator := p_clientCorrelator,
duration := *,
frequency := p_frequency,
link := *,
requestedAccuracy := p_requestedAccuracy,
requester := *,
resourceURL := p_resourceURL
} // End of template mw_periodic_notification_subscription
} // 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 UserEventPara {
Json.Bool reportingLocationReq optional,
AccessPointList accessPointList optional,
ZoneId zoneId optional,
OccurrenceInfo occurrenceInfo optional
} // End of type UserEventPara
/**
* @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 TimeStamp {
Seconds seconds,
NanoSeconds nanoSeconds
type enumerated OccurrenceInfo {
ONE_TIME_EVENT,
MULTIPLE_TIME_EVENT
}
/**
* @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 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 record of UserInfo UserInfos;
type record UserList {
UserInfos user optional,
ResourceURL resourceURL
}
type record ReportingCtrl {
Json.UInteger minimumInterval optional,
Json.UInteger maximumFrequency optional,
Json.UInteger maximumCount optional
} // End of type ReportingCtrl
/**
* @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 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 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 AreaInfo {
Shape shape,
Points points,
Json.UInteger radius optional
} // End of type AreaInfo
/**
* @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 Location latitude, expressed in the range -90° to +90°
*/
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 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,28 +127,85 @@ 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,
Shape shape,
TimeStamp timestamp_ optional,
Velocity velocity optional
Latitude latitude,
Longitude longitude,
Json.Number altitude 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
} with {
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,33 +213,31 @@ 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,
NumberOfAccessPoints numberOfAccessPoints,
ZoneId zoneId,
NumberOfAccessPoints numberOfAccessPoints,
NumberOfUnserviceableAccessPoints numberOfUnservicableAccessPoints,
NumberOfUsers numberOfUsers,
ResourceURL resourceURL
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,17 +248,20 @@ 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,
LocationInfo locationInfo optional,
ConnectionType connectionType,
AccessPointId accessPointId,
LocationInfo locationInfo optional,
ConnectionType connectionType,
OperationStatus operationStatus,
NumberOfUsers numberOfUsers,
InterestRealm interestRealm optional,
DateTimeStamp timezone optional,
ResourceURL resourceURL
NumberOfUsers numberOfUsers,
InterestRealm interestRealm optional,
DateTimeStamp timezone optional,
ResourceURL resourceURL
}
/**
* @desc Collection of the access point information list
*/
......@@ -191,15 +272,17 @@ 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,
ZoneId zoneId,
AccessPointInfos accessPoint optional,
ResourceURL resourceURL
ResourceURL resourceURL
}
/**
* @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 record Link {
Json.String rel,
Json.String href
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 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,199 +468,152 @@ 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,
TimeStamp timestamp_,
ResourceURL resourceURL,
LocationInfo locationInfo optional,
Address address_,
AccessPointId accessPointId,
ZoneId zoneId,
ResourceURL resourceURL optional,
TimeStamp timestamp_,
LocationInfo locationInfo optional,
CivicAddress civicInfo optional,
ContextLocationInfo contextLocationInfo optional,
AncillaryInfo ancillaryInfo optional
AncillaryInfo ancillaryInfo optional
} with {
variant (address_) "name as 'address'";
variant (timestamp_) "name as 'timestamp'";
} // 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'";
type record MapInfoOrigin {
Latitude latitude,
Longitude longitude,
Json.Number altitude optional
}
/**
* @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'";
}
/**
* @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,17 +624,23 @@ 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,
Json.Number accuracy optional,
TimeStamp timestamp_ optional
TimeStamp timestamp_ optional
} with {
variant (timestamp_) "name as 'timestamp'";
}
/**
* @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 {
Address address_,
LocationInfo currentLocation optional,
ServiceError errorInformation optional,
RetrievalStatus locationRetrievalStatus
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_,
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 {
Address address_,
CallbackData callbackData optional,
Link link optional,
ServiceError reason
type record UserLocationEventNotification {
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,
Links links_
} with {
variant (links_) "name as '_links'";
variant (address_) "name as 'address'";
} // End of type UserLocationEventNotification
/**
* @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 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 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 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 NotificationSubscriptionList {
ZonalTrafficSubscription zonalTrafficSubscription optional,
UserTrackingSubscription userTrackingSubscription optional,
PeriodicTrackingSubscription periodicTrackingSubscription optional,
ZoneStatusSubscription zoneStatusSubscription optional,
CircleNotificationSubscription circleNotificationSubscription optional,
DistanceNotificationSubscription distanceNotificationSubscription optional,
ResourceURL resourceURL
}
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";
......